[英]Selecting All Rows in SQL, With Specific Criteria
我正在处理一个相当复杂的SQL
语句。 这是我的位置:
SELECT c.category
FROM master_cat as c
LEFT JOIN
(
SELECT cat_id, user_id COUNT(cat_id) favoriteCat
FROM ratings
GROUP BY user_id
) a ON a.cat_id= c.cat_id
LEFT JOIN users AS u
ON u.user_id AND a.user_id
WHERE u.username = '{$user}' LIMIT 1
该陈述不完整。 我在这里没有中间桌。 cat_id
实际上不在ratings
。 但是items_id
来自一个名为items
的表,并且cat_id
也位于该表中。
所以我想做的是这样的:
SELECT rating FROM ??? GROUP BY cat_id where u.user=$user
我唯一想做的也许是将LEFT联接到favoriteCat
items
,但是我不确定是否允许。
我想得太多了,这是我的最终解决方案:
SELECT c.category, count(r.rating) AS totalCount
FROM ratings as r
LEFT JOIN items AS i
ON i.items_id = r.item_id
LEFT JOIN users AS u
ON u.user_id = r.user_id
LEFT JOIN master_cat AS c
ON c.cat_id = i.cat_id
WHERE r.user_id = '{$user_id}'
GROUP BY c.category
ORDER BY totalCount DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.