2017-08-13 57 views
0

请你能帮得到以下所述情况查询:从连接表中选择所有和AVG

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