|
最佳回答 |
0
|
axingLv6专家互助发布于2019-1-3 18:07
|
or b.c_id=NULL 在这里是不成立的,因为是或关系所以不影响查询的结果 注释掉了结果也一样 应该是作者写的有问题
|
|
|
|
最佳回答 |
0
|
No1-格调Lv6初级互助发布于2019-1-2 17:51(编辑于 2019-1-3 11:09)
|
不知道你想知道什么?这两张图片一样啊? 第一个图 A表 join B表 第二个图 A表 left join B表
至于你说的 or c.ID = null 这种写法 有些数据库就不支持 最好写成 or C.ID is null 或者 or C.ID is not null
|
|
|
|
最佳回答 |
0
|
zsh331Lv8专家互助发布于2019-1-3 09:38
|
先不管你的SQL位置问题...OR b.c_id=NULL 这种表示方法就不对~
or b.c_id is null or b.c_id =''
|
|
|
|
最佳回答 |
0
|
夜梦碎Lv3初级互助发布于2019-1-3 09:48
|
or b.c_id is not null or b.c_id='NULL'
|
-
liangk(提问者)
- 你这个不太对吧NULL是一个特殊的字符,用NULL本来就是希望能够判断出c_id这个里面的空值,加引号是针对数字或者特殊的字段信息
-
夜梦碎 回复 liangk(提问者)
- 没问题,你的sql才有问题,你确定你的OR b.c_id=NULL能查询吗,如果是要判断出c_id里面的空值,就看前半个or,b.c_id is not null 去除c_id不为空的数据
-
liangk(提问者)
- 稍等,我再给你补充问题,带查询结果
|
|
|
最佳回答 |
0
|
迎风布阵Lv4见习互助发布于2019-1-3 11:01
|
你这两个sql一样的吧,就是where条件变了,从b.>c.变成b.<c.,原来的b相当于后面的c,原来的c相当于后面的b
|
-
liangk(提问者)
- 我其中一个截图错了,当where b.>c 是 or c.c_id=null,反之 where b.
-
迎风布阵 回复 liangk(提问者)
- 我看了下这个网站,从他想查询的结果来看,我觉得这两个=null的条件没有意义。
-
liangk(提问者) 回复 迎风布阵
- 你说的这个我试过了,去掉这个条件确实对于查询结果没有影响,但是人家考虑了一个条件进去就是,当c.c_id这里面没有对应的值的时候情况,因为不是每个学生都同时选择了这三门选修课,有的学生可能只是选择了其中的两门课程,加了这个条件让程序更加严谨了
|
|