5

我有一张桌子 - 评论。如果不是站点成员,用户可以发布,但如果是,则希望显示他们的详细信息。

因此,如果用户评论不是会员,我会显示他们的帖子但不链接到他们的个人资料,因为他们没有。

因此,在以下查询中,即使没有连接,我也想返回行:

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 的数据,因为她没有 user_id

即使连接为空,有没有办法返回所有数据?

4

1 回答 1

8

LEFT JOIN改为使用

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

基本上INNER JOIN只选择一个表中的记录在另一个表上至少有一个匹配的记录,同时从左侧LEFT JOIN表中选择所有行(在你的情况下,它是)它是否在另一个表上没有匹配。comments

于 2012-11-24T07:07:10.800 回答