访问SQL LEFT JOIN不返回结果

时间:2014-03-29 14:41:24

标签: sql ms-access join left-join

我有三个表:评论,用户和评论帮助。

用户可以提交多条评论,这些评论存储在评论表中。

CommentsHelpfulness有三列:UserID,CommentID和“有用”布尔值。每个用户都可以指出每个评论是否有用,这将在CommentsHelpfulness表中创建一个条目。

我想要一个查询,它给我所有的注释ID,以及提交它的用户的名称,并显示当前登录的用户是否发现它有用,没有发现它有用或没有说明任何内容。因此,当前用户没有表达他的意见的评论的ID仍应输出,只是没有有用的布尔值。

对我而言,听起来应该像这样使用左连接:

SELECT Comments.ID, Users.Nom, CommentsHelpfulness.Helpful FROM (Comments INNER JOIN Users ON Comments.UserID = Users.ID) LEFT JOIN CommentsHelpfulness ON (CommentsHelpfulness.CommentID = Comments.ID AND (CommentsHelpfulness.UserID = ?))

不幸的是,如果没有CommentHelpfulness表中的条目,则不输出Comment ID。为什么这不起作用?是因为Access?

2 个答案:

答案 0 :(得分:0)

我认为问题是inner join,而不是left join

尝试删除该表:

SELECT c.ID, ch.Helpful
FROM Comments as c LEFT JOIN
     CommentsHelpfulness as ch
     ON ch.CommentID = c.ID AND
        ch.UserID = ?

答案 1 :(得分:0)

select c.id, c.Nom, d.Helpful from (
select a.ID, b.Nom from Comments a left join Users b
on a.UserID = b.ID) c left join CommentsHelpfulness d
on d.CommentID = c.ID;