2017-08-13 18 views
0

からすべてと平均をしてください選択するには、以下のような状況のためのクエリを取得するのに役立つ可能性があり:結合されたテーブル

1 TABLE: shops: id | name | is_locked | 
2 TABLE: products: id | name | price  | shop_id 
3 TABLE: rates: id | rate | is_accepted | shop_id 

を私はお店、ショップの製品や料金で3つのテーブルを持っています。そして今、ロックされていない店舗に属するすべての商品を、受入れられた店舗料金の平均で注文したいと思います。このクエリはどのように表示されるべきですか?あなたはこの試みることができる

+1

を親切にテーブルのサンプル・データ、期待される結果とあなたがこれまでに(不完全な、悪い、最悪何でも)しようとしたクエリを共有しています。 – zarruq

答えて

1

select p.name, p.price, AVG(r.rate) 
from shops s, products p, rates r 
Where s.is_locked <> 1 and 
     s.id = p.shop_id and 
     s.id = r.shop_id and 
     p.shop_id = r.shop_id 
group by p.id 
order by AVG(r.rate) 
+0

残念ながら、AVG(r.rate)はすべての製品で同じですが、shop_idを認識しません。 – jdoe

+0

@jdoe私の答えを編集しました。今すぐご確認ください。 –

+0

大丈夫、私はそのグループが行方不明だと思う。私に正しい解決策を教えていただきありがとうございます:) – jdoe

関連する問題