0
次の属性を持つMYSQLデータベースに2つのテーブルがあります。 サービス(ID、名前、詳細)。 評価(id、sid、points) 評価表のsidは、サービスキーの外部キーです。 以下の形式でデータを表示したい 出力(サービスID、名前、詳細、平均点)平均点での注文。 私はレコードが評価テーブルに存在する場合にのみ、クエリ上記2つ目のテーブルのデータを2番目のテーブルの平均で表示する方法
SELECT s.*, ROUND(COALESCE(AVG(r.points),0)) AS rating
FROM services s, rating r
WHERE s.id=r.sid
ORDER BY rating DESC
は結果を示し、この目的のために、次のクエリを使用していました。私はレーティングテーブルにレコードが存在するかどうか両方のレコードを表示する必要があります。レーティングテーブルにレコードがない場合、その平均値はゼロとしてカウントされます。 私を助けてください。
おかげで平均をラップサービステーブルのすべてのレコード –
グループバイ句のない集計があるためです。 s。*、s.name、s.detailsにs。*を変更して、これらのすべてのフィールドにgroup by句を追加してみてください。 –
by group by clauseを追加することによって、私のクエリが動作しています。どうもありがとう。 –