MySQL:聯接類型的快速細分我想快速細分MySQL聯接的類型。我知道這些,其余的我不知道它們是什么意思。逗號分隔(什么一點兒沒錯這是縮寫嗎?):SELECT * FROM a, b WHERE b.id = a.beeId AND ...顯示來自a的信息,即使b中沒有匹配:SELECT * FROM a LEFT OUTER JOIN b ON b.id = a.beeId WHERE ...我見過其他的加入,但我想知道是什么讓他們與眾不同,是什么?INNER/OUTER,添加LEFT改變一切。我已經知道聯接是如何工作的,我只想知道是否有其他類型的聯接,或者它們是否只是獲得相同結果的不同方式。
3 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
聯接:當兩個表中至少有一個匹配時返回行
- 左聯接:返回左表中的所有行,即使右表中沒有匹配項
- 右聯接:返回右表中的所有行,即使左側表中沒有匹配項
- 完全連接:當其中一個表中有匹配時返回行
結束編輯
簡而言之,您給出的逗號分隔的示例
SELECT?*?FROM?a,?b?WHERE?b.id?=?a.beeId?AND?...
從表a和表b中選擇每條記錄,并使用分隔表的逗號,這也可以在列中使用,如
SELECT?a.beeName,b.*?FROM?a,?b?WHERE?b.id?=?a.beeId?AND?...
然后在您的示例中b.id列和a.beeId列匹配的行中獲取指定的信息。因此,在您的示例中,它將從表a和b獲取所有信息,其中b.id等于a.beeId。在我的示例中,當b.id等于.beeId時,它將從b表獲取所有信息,而只從.beeName列獲取信息。注意,還有一個AND子句,這將有助于細化結果。
添加回答
舉報
0/150
提交
取消