質問
私表したい。
いすべてのカテゴリーに分類テーブルもすべての項目を契約によりユーザーのcategory_subscriptionsます。
基本的にこれが私のクエリでは:
SELECT *
FROM categories
LEFT JOIN user_category_subscriptions
ON user_category_subscriptions.category_id = categories.category_id
この作品は細かじゃなくてもいいと思うんだけど追加where節の終了のクエリを本質的にその内/エす。
SELECT *
FROM categories
LEFT JOIN user_category_subscriptions
ON user_category_subscriptions.category_id = categories.category_id
WHERE user_category_subscriptions.user_id = 1
の行き方を教えてください全てのカテゴリすべての項目を契約により、特定のユーザーをク?
category_idているキー両方のカテゴリテーブルuser_category_subscriptions.user_id在住のuser_category_subscriptionsます。
感謝
解決
置する必要がありますので、 join
条項ではなく、 where
:
SELECT *
FROM categories
LEFT JOIN user_category_subscriptions ON
user_category_subscriptions.category_id = categories.category_id
and user_category_subscriptions.user_id =1
参照、 inner join
, を免除等の条項の join
または where
ます。しかし、 outer join
, も大幅に異なります。
として join
条件を指定しまrowsetきされます。この評価 user_id = 1
最初にサブセットの user_category_subscriptions
と user_id
の 1
参加するとすべての行 categories
.この条件下では、すべての行 categories
, なみの categories
この特定のユーザーが加入している情報の user_category_subscriptions
列あります。もちろん、その他の categories
するデ null
の user_category_subscriptions
列あります。
逆に、 where
条項は、 その のrowset.なので、これは全ての参加とそれを解消すべての行が user_id
ない等しい 1
.だが残り、亜碧(上海)商貿有限公司取得する inner join
.
この立ちます♪
他のヒント
これを試してください
SELECT *
FROM categories
LEFT JOIN user_category_subscriptions
ON user_category_subscriptions.category_id = categories.category_id
WHERE user_category_subscriptions.user_id = 1
or user_category_subscriptions.user_id is null