2 qq 30237187 qq_30237187 于 2017.09.05 13:52 提问

sql如何在数据库的表中查询出互为好友的两行

表的好友信息如图所示,其中friend_user_id,user_id和friend_status分别为好友的id,自己的id和与和对方的状态,其中好友的friend_id和自己的user_id为相等关系,现在小弟想知道怎么通过以上条件写出可以查询表中互为好友的两行数据,小弟是一个小白望各路大神能伸伸援手帮个小忙,蟹蟹啦!

5个回答

u013181058
u013181058   2017.09.05 14:07
已采纳
 select a.*
 from 这个表 a
 left join 这个表 b on b.user_id = a.friend_user_id and b.friend_user_id = a.user_id
u013181058
u013181058 改成:select a.* from 这个表 a join 这个表 b on b.user_id = a.friend_user_id and b.friend_user_id = a.user_id
3 个月之前 回复
u013181058
u013181058 回复哥不迷信但哥迷人: a、b 是给这个表起别名
3 个月之前 回复
qq_30237187
qq_30237187 大神,请问一下a.*代表什么意思?我将“这个表”的名字改成自己的表名运行出错了,求大神解释
3 个月之前 回复
qq_30237187
qq_30237187   2017.09.05 13:52

图片说明

qq_23292875
qq_23292875   2017.09.05 14:08

select * from a left join on a.id = b.id where a.friend_user_id = b.user_id and a.user_id = b.friend_user_id and friend_status = 'FRIEND'

qq_30237187
qq_30237187 大神可以帮我写完整吗?我的表名叫做crs_friend,好人做到底送佛送到西了
3 个月之前 回复
qq_23292875
qq_23292875 回复Hefei19881002: left join b on
3 个月之前 回复
qq_23292875
qq_23292875 join on b on
3 个月之前 回复
qq_23292875
qq_23292875   2017.09.05 14:33

select a.* from crs_friend a left join crs_friend b on a.id = b.id where a.friend_user_id = b.user_id and a.user_id = b.friend_user_id and a.friend_status = 'FRIEND' and b.friend_status = 'FRIEND'

Simor
Simor   2017.09.05 15:43

select a.* from crs_friend a
left join crs_friend b on a.id = b.id
where a.friend_user_id = b.user_id and a.user_id = b.friend_user_id and a.friend_status = 'FRIEND' and b.friend_status = 'FRIEND'

Csdn user default icon
上传中...
上传图片
插入图片