对不起,也许这个问题很简单,但我无法解决。
我有3张桌子:
users
(id, name
)resumes
(id, title, users_id_fk
)comments
(id, comment, resumes_id_fk
)现在这些表有这些记录:
users
{(1,N1),(2,N2)} ==> 2位用户resumes
{(1,title1,1),(2,title2,1)} ==> 2个简历comments
{(1,Comment,2)} ==> 1条评论我想执行一个返回特定用户简历的标题和评论计数的查询:
SELECT
u.name, r.title, count(c.comment)
from
users u, resumes r, comments c
where
c.id = r.id
and r.id = u.id
and u.id = 2
group by
u.name, r.title;
问题是我的例外结果是:{(N2, ,0)}
但是返回{(,,)}
我的SQL不好,请等。
答案 0 :(得分:5)
您正在使用 INNER JOIN ,更改为 LEFT JOIN 将解决您的问题。
SELECT u.name, r.title, count(c.comment)
from users u
left join resumes r on r.users_id_fk =u.id
left join comments c on c.resumes_id_fk = r.id
where u.id = 2
group by u.name, r.title
你的加入条件也是错误的。