如何在mysql中运行嵌套左连接

qco9c6ql  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(217)

我有三个表,likes,users和status。所以我从喜欢的table回来加入 likes table with user table 看看谁喜欢和加入 likes table with statuses table 看看是谁贴的。
现在要从 status table 看看谁写的状态。问题来了。
sql小提琴http://sqlfiddle.com/#!9/d0707b/2号机组
我当前的查询

select l.*,  s.* , a.id as aid, a.userName from likes l
left join 
    statuses s on l.source_id = s.id
left join 
   users a on l.user_id = a.id
where 
   l.user_id in (5,7) 
or
   (s.privacy='Public' and s.interest in ('mobile', 'andriod') )

order by l.id desc
``` `Here s.user_id=a.id` 我想把statuses表和user表连接起来。
[如果问题不清楚,请评论,将尝试编辑]
谢谢您。
q3aa0525

q3aa05251#

你必须加入 user 又是一张table。请看这里:

SELECT
    l.*, s.*,
    a.id AS aid,
    a.userName,
    b.userName
FROM
    likes l
LEFT JOIN statuses s ON l.source_id = s.id
LEFT JOIN users a ON l.user_id = a.id
LEFT JOIN users b ON s.user_id = b.id
WHERE
    l.user_id IN (5, 7)
OR (
    s.privacy = 'Public'
    AND s.interest IN ('mobile', 'andriod')
)
ORDER BY
    l.id DESC

相关问题