数据库结构:
数据库说明
一个合作伙伴可以拥有评论(0,1或更多)评论始终具有reviews_item所有reviews_item具有一个类别
问题
我需要SQL查询,使“公司”的列表具有reviews_items.value的AVG值,我需要它通过此值设置订单。即使对于某些“公司”我没有任何“评论”,并且“ reviews_items”公司名称应列在AVG == 0的列表中。它应该选择仅活动== 1且(如果存在)评论活动== 1的公司
我的slq查询,无法正常工作:
SELECT
c.name,c.logo,c.url,
AVG(ri.value) as avarage
FROM company c
LEFT JOIN reviews r ON r.company_id = c.id
LEFT JOIN reviews_items ri ON ri.review_id = r.id
LEFT JOIN category cat ON ri.category_id = cat.id
WHERE c.active = 1
GROUP BY c.id
我希望我的问题很清楚:)
PS。对不起,如果我的语言(英语)不太好:D
WERE子句中缺少某项(或r.active IS NULL):
SELECT
c.name,c.logo,c.url,
AVG(NULLIF(ri.value,0)) as avarage
FROM company c
LEFT JOIN reviews r ON r.company_id = c.id
LEFT JOIN reviews_items ri ON ri.review_id = r.id
LEFT JOIN category cat ON ri.category_id = cat.id
WHERE c.active = 1 AND (r.active = 1 OR r.active IS NULL)
GROUP BY c.id
ORDER BY avarage DESC
感谢您的尝试!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句