1
テーブルのアパートよりも大きな評価を持つ名を表示するクエリを見つける>トラブル与えられた値
apartment_id || apartment_name || status
==============================
1 joys active
5 harrys active
10 tols active
テーブルの評価>
user_id || apartment_id || rating
===================================
1 1 4
2 5 3
3 10 4
4 10 5
iの値よりも大きな評価を持っているマンション名を取得する必要があります同じアパートに異なるユーザーからの評価が2つ以上ある場合(アパートID = 10のように)、アパートは平均が「x」よりも大きい場合に返されます。
SELECT a.* FROM `apartment` AS a LEFT JOIN `ratings` AS b ON a.`apartment_id` = b.`apartment_id` WHERE a.`status` NOT IN ('inactive') AND (b.apartment_id IN (SELECT apartment_id FROM `ratings` WHERE `rating` > x)) GROUP BY a.`apartment_id`
アパートは、アパートは、複数の評価値を有する場合にのみ1 rating..plsヘルプ
がクエリに問題があるように思われるがある場合は、上記のクエリは正常に動作します...すべて**アパート**テーブルにある "アパートメント**"テーブルのアパートは格付けに関係なく表示されています**アパート**テーブルにある**評価**テーブルには存在しないアパートも表示されています – ashwin
@ ashwinそれらはあなたのフィルターであり、私のものではありません。両方のテーブルに表示される結果だけが必要な場合は、 'LEFT JOIN'ではなく' INNER JOIN'を使用してください。 'NOT IN( 'active')'を使用していて、 'NOT IN( 'inactive')でないものだけを有効にしたい場合は – sagi
LEFT JOINをINNER JOIN.....に変更しました..thanku @sagi – ashwin