Mysql SQL联接并在联接为false时显示结果
我有一个表-评论。如果用户不是该网站的成员,则可以发布,但如果他们是,则希望显示其详细信息 因此,如果一个不是会员的用户发表评论,我会显示他们的帖子,但不会链接到他们的个人资料,因为他们没有 因此,在以下查询中,我希望返回行,即使没有联接:Mysql SQL联接并在联接为false时显示结果,mysql,sql,Mysql,Sql,我有一个表-评论。如果用户不是该网站的成员,则可以发布,但如果他们是,则希望显示其详细信息 因此,如果一个不是会员的用户发表评论,我会显示他们的帖子,但不会链接到他们的个人资料,因为他们没有 因此,在以下查询中,我希望返回行,即使没有联接: select wc.comment, wc.comment_by_name, wc.user_id, u.url from comments wc join users u on wc.wag_uid = u.user_id where id = '1237
select wc.comment, wc.comment_by_name, wc.user_id, u.url from comments wc
join users u on wc.wag_uid = u.user_id
where id = '1237' group by wc.comment order by wc.dateadded desc
我想返回:
comment comment_by_name user_id url
------- --------------- ------- ----
hello dan 12 /dan
hey jane /jane
world jack 10 /jack
但是上面没有返回jane的数据,因为她没有用户id
即使联接为空,是否有方法返回所有数据?使用
左联接
SELECT wc.comment, wc.comment_by_name, wc.user_id, u.url
FROM comments wc
LEFT JOIN users u
on wc.wag_uid = u.user_id
WHERE id = '1237'
GROUP BY wc.comment
ORDER BY wc.dateadded DESC
基本上,
内部联接
只选择一个表中的记录在另一个表上至少有一个匹配的记录,而左侧联接
选择左侧表中的所有行(在您的情况下,它是注释
)是否在另一张桌子上没有对手。我正在快速自学加入,这是一个宝贵的教训!非常感谢!当它允许我在这里工作时,我会接受的