1. 程式人生 > >SQL 【INNER JOIN 關鍵字】

SQL 【INNER JOIN 關鍵字】

      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.欄位號”程式碼即可,這樣就可以無限聯接資料表了:)
  • 括號不要隨便新增,只有需要和後面比較的情況下,才可以在前面增加括號。