0

だから私は次のテーブルを持っています:

論文

  • article_id

コメント

  • comment_id
  • article_id

私がしたいのは、コメントの有無にかかわらずすべての記事を検索し、記事の ID とコメントの数を表示することです。

2 つの記事があり、最初の記事だけにコメントがあるとします。両方とコメント番号を表示するクエリを作成できません。

編集1:

回答を読んだ後、次のクエリを作成しましたが、ほぼ完了です! 問題があるだけです。記事にコメントがないときに 0 を取得する代わりに、1 を取得します。

SELECT *,COUNT(a.article_id) FROM article as a LEFT JOIN comment as c ON a.article_id = c.article_id GROUP BY a.article_id;

編集2:

単純な間違いです。「COUNT(a.article_id)」を「COUNT(C.article_id)」に変更しました。とても明白です!:) 助けてくれてありがとう ;)

SELECT *,COUNT(c.article_id) FROM article as a LEFT JOIN comment as c ON a.article_id = c.article_id GROUP BY a.article_id;

4

3 に答える 3

2

あなたはしたい

SELECT 
    IFNULL(COUNT(c.comment_id),0) AS 'Comment Count' , 
    a.article_id 
FROM 
  article a 
LEFT JOIN 
  comment c 
  ON c.article_id

ここで行っているのは、MySQL を使用しLEFT JOINてコメント テーブルと記事テーブル (参照) を比較することです。c.article_idとが一致する場合a.article_idは、データを取得します。

于 2013-10-21T12:33:08.833 に答える
2

これを試して:

SELECT * FROM Article as a INNER JOIN Comment as c ON a.article_id = c.article_id;
于 2013-10-21T12:36:28.607 に答える
1

試すLEFT JOIN

Select 
article_id, 
count(comment_id)
from 
article a
LEFT JOIN comment c on (a.article_id=c.article_id)
GROUP BY article_id
于 2013-10-21T12:33:26.330 に答える