我有三个表:评论,用户和评论帮助。
用户可以提交多条评论,这些评论存储在评论表中。
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?
答案 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;