【发布时间】:2014-10-21 09:19:09
【问题描述】:
我正在尝试将 3 个表加入到一个 select 语句中,但计算一个表的出现次数,同时在没有出现的情况下仍然显示记录。
可以在我整理的快速 sqlFiddle 中看到我的示例。我尝试使用左连接,但它没有产生我想要的结果。
http://sqlfiddle.com/#!6/e2840/8
这是 SQL 语句:
SELECT O.OptionID,O.OptionName, Count(A.OptionID) AS Total
FROM Options as O
LEFT JOIN Answers AS A ON O.OptionID = A.OptionID
LEFT JOIN Users as U ON A.UserId = U.UserID
WHERE A.QuestionID = 1
GROUP BY O.OptionID,O.OptionName
我希望它返回选项表中的所有行,如果没有找到该选项的答案,则在总列中显示 0。
当前小提琴返回的内容:
我希望它返回什么:
【问题讨论】:
-
为什么没有人指出不需要用户?
-
你是对的,在这个例子中不需要它,但我把它包括在内,因为在我的现实生活中,它是必不可少的。
标签: sql sql-server join sql-server-2012