0

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呼ばれるテーブルからのものであり、そのテーブルにもあります。itemscat_id

だから私がやろうとしているのはこれです:

SELECT rating FROM ??? GROUP BY cat_id where u.user=$user

たぶん私が考えることができる唯一のことは、items内部との別の左結合favoriteCatですが、それが許可されているかどうかはわかりません。

4

1 に答える 1

0

私はこれを考えすぎていました。これが私の最終的な解決策です:

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
于 2013-02-04T16:44:51.680 に答える