0 レビュー
1 回答
php-mysqlselectステートメントの重複行を削除します
だから誰かがこれについて私を助けてくれることを願っています。同じ問題についてたくさんの質問を読みましたが、誰も私の質問に答えません。 PHPコードに次のSQLSELECTステートメントがあります。
$sql = "
SELECT DISTINCT
pics.piclocation,
pics.picid,
rating
FROM
pics,
ratings
WHERE
pics.milfid = ratings.picid
ORDER BY
ratings.rating DESC
";
ただし、多くの人が知っているように、DISTINCTキーワードは、重複する行を常に排除するわけではありません。問題は、同じ画像が複数回出力されることです。つまり、pics.piclocationです。アイデアは、各写真が1から5まで評価され、評価テーブルに挿入されるというものです。
出力を生成し、重複するピコロケーション行を排除する方法についてのアイデアはありますか?役立つ場合は、5つの評価が最も高い写真に基づいて写真を一覧表示したいと思います。
ありがとう!
わからない
0
レビュー
答え :
解決策:
したがって、評価が 5
の画像のみが必要な場合は、先に進んでそれを選択すると、数を数えることができます5のその画像が取得され、それによって順序付けられます。次に、 pics.milfid
やratings.picid
のような画像の一意の識別子でグループ化する必要があります。
SELECT
pics.piclocation、
pics.picid、
nb_ratingsとしてのCOUNT(ratings.rating)
から
写真、
評価
どこ
pics.milfid = ratings.picid
ANDratings.rating={-コード-1}
GROUP BY
{-コード-3}
注文者
nb_ratings DESC
代わりに、最高の評価の写真が必要な場合は、評価を SUM
することができます:
SELECT
pics.piclocation、
pics.picid、
SUM(rating)as total_rating
から
写真、
評価
どこ
pics.milfid = ratings.picid
GROUP BY
{-コード-3}
注文者
total_rating DESC
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。