繁体   English   中英

使用特定条件选择SQL中的所有行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM