SQL 【INNER JOIN 關鍵字】
阿新 • • 發佈:2019-01-29
inner join (等值連線) 只返回兩個表中聯結欄位相等的行
left join (左連線)返回包括左表中的所有記錄和右表中聯結欄位相等的記錄
right join (右連線)返回包括右表中的所有記錄和左表中聯結欄位相等的記錄
full join (全連線) 該關鍵字在 MySQL 下是無法使用的,但在 SQL 下是存在的
INNER JOIN 語法:
INNER JOIN 連線兩個資料表的用法:
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.欄位號=表2.欄位號
INNER JOIN 連線三個資料表的用法:
SELECT * FROM (表1 INNER JOIN 表2 ON 表1.欄位號=表2.欄位號) INNER JOIN 表3 ON 表1.欄位號=表3.欄位號
以此類推,先兩兩比較,然後拿前面兩個作為標準的表的欄位為基準和第三個表比較。
什麼是前兩個作為標準的呢?
如果是 INNER JOIN 那麼用哪個都可以,如果是 LEFT JOIN 最好用第一個表的欄位比較第三個的。其實都差不多。
但是和第三個表進行比較,那麼後面的一定要取第三個表的相對應欄位。這一點不能隨意拿一、二表中的欄位。
注意事項:
- 在輸入字母過程中,一定要用英文半形標點符號,單詞之間留一半形空格;
- 在建立資料表時,如果一個表與多個表聯接,那麼這一個表中的欄位必須是“數字”資料型別,而多個表中的相同欄位必須是主鍵,而且是“自動編號”資料型別。否則,很難聯接成功。
- 程式碼巢狀快速方法:如,想連線五個表,則只要在連線四個表的程式碼上加一個前後括號(前括號加在FROM的後面,後括號加在程式碼的末尾即可),然後在後括號後面繼續新增“INNER JOIN 表名X ON 表1.欄位號=表X.欄位號”程式碼即可,這樣就可以無限聯接資料表了:)
- 括號不要隨便新增,只有需要和後面比較的情況下,才可以在前面增加括號。