1. 多表連接類型
1. 笛卡爾積(交叉連接) 在MySQL中可以為CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如:
SELECT * FROM table1 CROSS JOIN table2 SELECT * FROM table1 JOIN table2 SELECT * FROM table1,table2
由于其返回的結果為被連接的兩個數據表的乘積,因此當有WHERE, ON或USING條件的時候一般不建議使用,因為當數據表項目太多的時候,會非常慢。一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN
2. 內連接INNER JOIN 在MySQL中把INNER JOIN叫做等值連接,即需要指定等值連接條件在MySQL中CROSS和INNER JOIN被劃分在一起。 join_table: table_reference [INNER | CROSS] JOIN table_factor [join_condition]
3. MySQL中的外連接,分為左外連接和右連接,即除了返回符合連接條件的結果之外,還要返回左表(左連接)或者右表(右連接)中不符合連接條件的結果,相對應的使用NULL對應。
例子:
user表:
id | name
―――
1 | libk
2 | zyfon
3 | daodao
user_action表:
user_id | action
―――――
1 | jump
1 | kick
1 | jump
2 | run
4 | swim
sql:
select id, name, action from user as u left join user_action a on u.id = a.user_id
result:
id | name | action
――――――――――
主站蜘蛛池模板:
荔浦县|
贵阳市|
伊通|
江都市|
巨鹿县|
海口市|
大邑县|
南丹县|
桐城市|
巴林左旗|
汨罗市|
龙江县|
芒康县|
沂南县|
满城县|
库伦旗|
信宜市|
微博|
柏乡县|
光山县|
长沙市|
田东县|
临沂市|
铁岭县|
本溪市|
昌平区|
潮州市|
威海市|
连城县|
泰顺县|
贡山|
翁源县|
瑞丽市|
自贡市|
五大连池市|
睢宁县|
寿宁县|
龙岩市|
通江县|
宜宾县|
长海县|