私はデザインのリストが必要な左の結合に少し問題があります。各デザインには、それぞれのデザインのコメント数を表示したいと思います。私はLEFTを使用していますLEFT JOINとWHERE内の数
は
SELECT ds.*, count(com.comment) AS countcom FROM tdic_designs ds
LEFT JOIN tdic_comments com ON (com.design_id = ds.id)
WHERE ds.approved = 1 AND ds.hidden = 0 AND com.approved = 1
GROUP BY ds.id
ORDER BY ds.date_added ASC
登録しよう。しかし、それは唯一の1件のコメントを持っている一つのデザインを表示するよう、それは動作しませんが、私は第2の設計にはない、テーブル、中に2つのデザインを持っていますコメントがあります。
私はWHERE句を削除して
SELECT ds.*, count(com.comment) AS countcom FROM tdic_designs ds
LEFT JOIN tdic_comments com ON (com.design_id = ds.id)
GROUP BY ds.id, com.approved, ds.approved
ORDER BY ds.date_added ASC
にSQLを変更した場合。しかし、それは承認されていないデザインとコメントの両方を選択するので、悪いことです。
私は間違っていますか、間違っていますか?
'MySQL'に外のテーブルにフィルタを移動するだろう、私は推測しますか? – Quassnoi