抱歉,问题标题不佳,我不确定描述我所问内容的正确术语。
我有两张桌子:
帖子:
p_id | p_author | p_text
post_comments:
pc_id | pc_p_id | pc_author | pc_text
每个评论的 pc_p_id 对应于帖子的 p_id。
我要选择:
- 来自特定作者的所有帖子的 p_id 和 p_text
- 对应帖子的评论数
我可以用这样的查询来完成第一部分(假设“1”是作者):
SELECT p_id, p_text FROM posts WHERE p_author = 1
我可以得到这样一个特定帖子的评论数量(假设“12”是一个帖子ID):
SELECT COUNT(*) FROM post_comments WHERE pc_p_id = 12
我的问题是,如何结合这两个查询,以便获得来自特定作者的所有帖子的 p_id 和 p_text 以及相应帖子的评论数?
我尝试使用如下所示的 LEFT JOIN,但它给了我一个语法错误:
SELECT t1.p_id, t1.p_text, t2.COUNT(*)
FROM posts t1 LEFT JOIN post_comments t2
WHERE t1.p_author = 1 AND t2.pc_p_id = t1.p_id
ORDER BY t1.p_id DESC
这是 SQL 小提琴: