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

基本上,
内部联接
只选择一个表中的记录在另一个表上至少有一个匹配的记录,而
左侧联接
选择左侧表中的所有行(在您的情况下,它是
注释
)是否在另一张桌子上没有对手。

我正在快速自学加入,这是一个宝贵的教训!非常感谢!当它允许我在这里工作时,我会接受的