質問のタイトルが悪いので申し訳ありませんが、私が質問していることを説明する正しい用語がわかりません。
私は2つのテーブルを持っています:
投稿:
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
私の質問は、2つのクエリを組み合わせて、特定の作成者からのすべての投稿のp_idとp_textを、対応する投稿のコメント数とともに取得するにはどうすればよいですか?
次のようにLEFTJOINを使用しようとしましたが、構文エラーが発生します。
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フィドルは次のとおりです。