mycount
article
テーブルの列ではありません。それを書く正しい方法は次のようになります:
SELECT article.topic,
article.ID ,
( SELECT COUNT(*)
FROM COMMENT
WHERE article.ID_art = comment.foreign_ID_art
GROUP BY foreign_ID_art
)
AS mycount
FROM article HAVING mycount = 0
同じ結果を達成するための別の方法ですが、もう少し効率的である可能性があります(適切なインデックスが存在する場合):
SELECT article.topic,
article.ID
FROM article
LEFT JOIN COMMENT
ON article.ID_art = comment.foreign_ID_art
WHERE comment.foreign_ID_art IS NULL
最終的には、各記事のコメント数を列article
としてテーブルに保存しcomment_count
、新しいコメントが追加されるたびにそれをインクリメントするのが最善です。次に、クエリを次のように簡略化できます。
SELECT article.topic,
article.ID
FROM article
WHERE article.comment_count = 0
インデックスをcomment_count
付けると非常に効率的です。