我似乎很难掌握在一个ID上连接3个表的概念。
用户表
|id | |:----:| |1 | |2 |
开机自检表
|id |userid | content| |:----:|:----:|:----:| |1 |1 |HELLO | |2 |1 |THERE | |3 |2 |WORLD |
朋友表
|id | userid | friendid | |:----:|:------:|:--------:| | 1 | 1 | 2 |
我想从USER表中提供ID,并从POST中获取所有内容,其中POST.USERID是FRIEND.USERID和FRIEND.FRIENDID,所以USER.ID ='1'将带回所有POST.CONTENT(这个案例)。
真希望您能有所帮助,让我烦了几个小时。
按照您的描述,您无需加入用户表,可以直接使用friends表,因为那里有userid。但这应该给您所有来自userid 5和他的那个人的朋友的帖子。
SELECT post.*
FROM post
INNER JOIN friends ON post.userid = friends.userid OR post.userid = friends.friendid
WHERE friends.userid =1
要不查询重复项,请使用以下命令:
SELECT post.*, users.firstname
FROM post
INNER JOIN users ON users.userid = post.userid
WHERE post.userid = 1
UNION
SELECT post.*, users.firstname
FROM friends
INNER JOIN post ON friends.friendid = post.userid
INNER JOIN users ON users.userid = friends.friendid
WHERE friends.userid = 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句