sql 自身连接

来源:百度知道 编辑:UC知道 时间:2024/05/18 07:13:17
求年龄大于王波的学员姓名?

表格如下:

学生
--------------------------
学号 | 姓名 | 性别 | 年龄
--------------------------
9901 | 陈平 | 男 | 19
--------------------------
9902 | 王波 | 男 | 20
--------------------------
9903 | 张莉 | 女 | 21

-----------------------------------

教程示例代码是:

Select s1.姓名,s1.年龄,s1.性别 from 学生 s1, 学生 s2 where s1.姓名='王波' and s1.年龄<s2.年龄

但是显示结果是:
| 姓名 | 年龄 | 性别
-------------------------
1 | 王波 | 20 | 男

--------------------------------------------------------------
请问该怎么修改?
是不是因为 “Select s1.姓名,s1.年龄,s1.性别” 选择的是 s1 的,“where s1.姓名='王波' ”这里就直接选定了?如果是这样“and s1.年龄<s2.年龄”这里为什么不报错呢?

谢谢!

Select s1.姓名,s1.年龄,s1.性别
from 学生 s1, 学生 s2
where s2.姓名='王波' and s1.年龄>s2.年龄

用连接的方式这样写就对了
----------
补充一下:
二楼典型瞎写的根本不可能有结果的

select * from 学生 where 年龄 > (select top 1 年龄 from 学生 where 姓名 ='王波')

Select s1.姓名,s1.年龄,s1.性别 from 学生 s1, 学生 s2 where s1.学号=s2.学号 and s1.姓名='王波' and s1.年龄<s2.年龄

select * from 学生 where 年龄>(select 年龄 from 学生 where 姓名='王波')