私はフードレビューのウェブページを行っています。トップ10と呼ばれるページがあり、フードレビューでトップ10を表示します。私は現在このSQLを持っていますが、それはすべての皿の評価を組み合わせ、1つの料理として結合します。このSQL文はPHPコード内に置かれています。SQL文が正しくグループ化されていません
SELECT i.path, i.name, AVG(r.review_rating), r.image_id
FROM images i, review r
WHERE r.image_id = i.id
GROUP BY 'r.image_id'
ORDER BY AVG(r.review_rating) DESC
LIMIT 10
ようこそスタックオーバーフロー。すぐに[About]ページと[Ask]ページをお読みください。 「うまくいきません」というのは、問題の良い特徴ではありません。 SQLでは、クエリの各テーブルのアウトライン・スキーマを参照する必要があります。データの行数は2〜5かかります。また、表示内容と表示内容についての説明も必要です。正式なスキーマなしで単に表名、列名およびサンプル値を与えるだけで十分です。 –
GROUP BY句の 'r.image_id'の前後にある引用符は何ですか?それらは一重引用符で表示されるため、定数文字列でグループ化しています。グループ化の '列'(値)に値が1つしかないため、グループが1つしかないことがあります。 MySQLを使用している場合(SQLの質問で使用しているDBMSを特定することをお勧めします)、 '' GROUP BY 'r'.'' image_id'' 'を使うつもりです。 BY r.image_id'。 –
旧式の 'FROM table1、table2'表記は、SQL-92で廃止されました。 20年以上経ってから書かれたSQLでは使用しないでください。 –