YC3354 2017-01-03 07:56 采纳率: 62.5%
浏览 896
已采纳

【新人求解答】sql 自身连接问题

求年龄大于王波的学员姓名?
表格如下:

学生

学号 | 姓名 | 性别 | 年龄

9901 | 陈平 | 男 | 19

9902 | 王波 | 男 | 20

9903 | 张莉 | 女 | 21

教程示例代码是:

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

但是显示结果是:

| 姓名 | 年龄 | 性别

1 | 王波 | 20 | 男

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

能够显示正确结果,这是什么原因?求解释!!!

  • 写回答

7条回答

  • 强化脑细胞 2017-01-03 09:23
    关注

    你的第一句sql:Select s1.姓名,s1.年龄,s1.性别 from 学生 s1, 学生 s2 where s1.姓名='王波' and s1.年龄 至于你的第二句sql:Select s1.姓名,s1.年龄,s1.性别 from 学生 s1, 学生 s2 where s2.姓名='王波' and s1.年龄>s2.年龄 是正确的

    你主要的问题是两张表你没搞清楚 拿哪张表里面的'王波',如果你拿的是第一张表里面的'王波'作比较,那么你比较的就是第二张表,那么你查询的字段应该为第二张表中的字段,所以这也就是你第一句sql的问题。你的第二句sql 相当于前面一段话反过来,也就是拿第二张表中的'王波'作比较,查的是第一张表中符合条件的字段,所以select 后面应该是第一张表s1.字段

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 matlab求解平差
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现
  • ¥85 永磁型步进电机PID算法