1.言簡意賅:
表關系:
id name 1 老王 2 老水 3 老六
id name 1 小花 2 小美 3 小青
id girl_id boy_id 1 2 1 2 1 1 3 3 2 4 3 3
SQL語句:
SELECT boy.`name` as boy_name, girl.`name` as girl_name, hotel.boy_id, hotel.girl_id FROM boy INNER JOIN hotel ON boy.id = hotel.boy_id INNER JOIN girl ON hotel.girl_id = girl.id
結果:
boy_name girl_name boy_id girl_id
老王 小劉 1 2
老王 小花 1 1
動畫 小青 2 3
設計費 小青 3 3
2.下面是解釋(來自:https://www.jb51.net/article/51638.htm):
創建視圖
Sql代碼
1
2
3
4
|
SELECT
t1.xxx, t2.xxx, t3.xxx
FROM
(table1 t1
INNER
JOIN
table2 t2
ON
t1.fid = t2.fid)
INNER
JOIN
table3 t3
ON
t1.mid = t3.mid;
|
這里使用了3表關聯,對於多表關聯的 INNER JOIN 寫法有一個技巧
1. 先寫最簡單的2表關聯 INNER JOIN
2. 然后使用 () 從 FROM 之后到語句結尾全部擴起來
3. 在語句結尾開始連接與下一個表的 INNER JOIN
記住這個原則,未來進行4表關聯,5表關聯就都不是什么難事了
以下是其它網友的補充:
多表聯接是十分有用的技術,因為某 些情況下,我們需要跨越多個表查詢數據。
語法格式:
FROM (((表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號) INNER JOIN 表3 ON 表1.字段號=表3.字段號) INNER JOIN 表4 ON Member.字段號=表4.字段號) INNER JOIN 表X ON Member.字段號=表X.字段號,只要套用該格式就可以了。
注意事項:
在輸入字母過程中,一定要用英文半角標點符號,單詞之間留一半角空格;
在建立數據表時,如果一個表與多個表聯接,那么這一個表中的字段必須是“數字”數據類型,而多個表中的相同字段必須是主鍵,而且是“自動編號”數 據類型。否則,很難聯接成功。
代碼嵌套快速方法:如,想連接五個表,則只要在連接四個表的代碼上加一個前后括號(前括號加在FROM的后面,后括號加在代碼的末尾即可),然后 在后括號后面繼續添加“INNER JOIN 表名X ON 表1.字段號=表X.字段號”代碼即可,這樣就可以無限聯接數據表了。
連接兩個數據表的用法:
FROM 表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號
連接三個數據表的用法:
FROM (表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號) INNER JOIN 表3 ON 表1.字段號=表3.字段號
連接四個數據表的用法:
FROM ((表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號) INNER JOIN 表3 ON 表1.字段號=表3.字段號) INNER JOIN 表4 ON Member.字段號=表4.字段號
連接五個數據表的用法:
FROM (((表1 INNER JOIN 表2 ON 表1.字段號=表2.字段號) INNER JOIN 表3 ON 表1.字段號=表3.字段號) INNER JOIN 表4 ON Member.字段號=表4.字段號) INNER JOIN 表5 ON Member.字段號=表5.字段號