第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL與where子句連接

MySQL與where子句連接

哆啦的時光機 2019-08-30 16:09:35
我有兩張桌子想加入。我想要類別表中的所有類別以及category_subscriptions表中用戶訂閱的所有類別?;旧线@是我目前的查詢:SELECT *FROM categoriesLEFT JOIN user_category_subscriptions      ON user_category_subscriptions.category_id = categories.category_id這工作正常,但我想在查詢的末尾添加一個where子句,然后基本上使它成為內(nèi)部/ equi連接。   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表中。謝謝
查看完整描述

2 回答

?
ABOUTYOU

TA貢獻1812條經(jīng)驗 獲得超5個贊

你需要把它放在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條件,您指定要加入表的行集。這意味著,它計算user_id = 1第一,并采取子集user_category_subscriptions用user_id的1加入到所有的行categories。這將為您提供所有行categories,而只有categories此特定用戶訂閱的行將在user_category_subscriptions列中包含任何信息。當(dāng)然,所有其他的categories將被填充null在user_category_subscriptions列。


相反,where子句執(zhí)行連接,然后減少行集。因此,這會完成所有連接,然后消除所有user_id不相等的行1。你得到一個效率低下的方法inner join。


希望這有幫助!


查看完整回答
反對 回復(fù) 2019-08-30
?
慕的地6264312

TA貢獻1817條經(jīng)驗 獲得超6個贊

試試這個


  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


查看完整回答
反對 回復(fù) 2019-08-30
  • 2 回答
  • 0 關(guān)注
  • 654 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號