为了账号安全,请及时绑定邮箱和手机立即绑定

Mysql查询,join空表时发生问题

Mysql查询,join空表时发生问题

qq_高飞_2 2017-01-21 15:07:03
问题是这样的,用户表有一个记录,现在想用用户表join另一张计算出来的表,查询用户表的一个记录和另一张计算出来的表的所有记录。但是这张计算得来的表有可能是空的,当它是空表的时候,最后的查询结果就只能是空值了select * from user u1 join (select * from user where user.id=2) as u2 where u1.id=1;比如以上这个sql语句,user表只有id为1的记录。查询出来是Empty set 怎么让它把id为1的记录取出来?PS:试过左连接,,结果不行,报错了select * from user u1 left join (select * from user where user.id=2) as u2 where u1.id=1;在where u1.id=1附近出的错ps:这个需求的原型是根据用户id,取出用户对象和对应的好友列表。当该用户没有好友时,计算出来的好友表就是空值。整个sql语句查询结果就是空集。现在想要取出用户信息。
查看完整描述

2 回答

?
黑山头山大王

TA贡献20条经验 获得超8个赞

123

查看完整回答
反对 回复 2017-01-21
?
阿柴chai

TA贡献9条经验 获得超3个赞

连接查询,查询的空结果照样可以显示出来

查看完整回答
反对 回复 2017-01-21
  • qq_高飞_2
    qq_高飞_2
    我上面有写表连接啊,只不过另一张表查询id为2的用户记录,没有这个记录,所以是空集。但是表连接后查询结果还是空集。
  • KevenHuang
    KevenHuang
    他的意思可能是用交叉连接,迪卡尔集,然后筛选。
  • qq_高飞_2
    qq_高飞_2
    我用交叉连接试过了,另一个表是空集时查询结果也是空集 select u1.*,u2.* from user as u1 cross join (select * from user where id=2) as u2 where u1.id=1; ,不知道怎么筛选。
点击展开后面1
  • 2 回答
  • 0 关注
  • 3190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信