sql 2个表查询(可能有空值),结果要全部显示
。。。。。前面打错需求了假设有学生表a成绩bidnameroomidroom(a表的外键)val1ax231x23802bs212s21903cb113<NULL>70希...
。。。。。前面打错需求了
假设有
学生表a 成绩b
id name room id room(a表的外键) val
1 a x23 1 x23 80
2 b s21 2 s21 90
3 c b11 3 <NULL> 70
希望得到
id name Student ID val
1 a x23 80
2 b s21 90
3 c <NULL> 70
求问这么输出
。。。又失误下
a表 c 的 room 为《null》
得到数据 Student ID为 room id也可以不显示,2个表的id是各个表的主键,并不是一样的 展开
假设有
学生表a 成绩b
id name room id room(a表的外键) val
1 a x23 1 x23 80
2 b s21 2 s21 90
3 c b11 3 <NULL> 70
希望得到
id name Student ID val
1 a x23 80
2 b s21 90
3 c <NULL> 70
求问这么输出
。。。又失误下
a表 c 的 room 为《null》
得到数据 Student ID为 room id也可以不显示,2个表的id是各个表的主键,并不是一样的 展开
展开全部
你这种2个表没有关联的,显示不出来的val的
如果用room关联,,
最后的结果
val 也会是null
除非你用case 语句 默认他是空的时候显示为70的
如果用room关联,,
最后的结果
val 也会是null
除非你用case 语句 默认他是空的时候显示为70的
更多追问追答
追问
是之前关联过的。room ,比如c 是之前住宿的,之后走读了。寝室不住了。现在输出之前的那个,可以不?
追答
,,不行的,你这种纸能
select a.id,a.name,b.stustuid,case when isnull(b.val,'')='' then 70 else b.val end
from a left join b on a.room=b.room
没其他的方式的,因为你想如果b表room有多个空的,我关联哪个,,,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询