MYSQL学习笔记 (三)JOIN用法
數(shù)據(jù)庫(kù)的操作分開增刪改查,其中查詢操作基本占系統(tǒng)的90%,大家所說的優(yōu)化SQL語(yǔ)句基本是優(yōu)化查詢語(yǔ)句。接下來將學(xué)習(xí)JOIN的用法,JOIN包括:INNER JOIN(內(nèi)連接)、LEFT JOIN(左外連接)、RIGHT JOIN(右外連接)、FULL JOIN(全外連接)、CROSS JOIN(交叉連接)。在說明之前,先創(chuàng)建user、schoolMap、school三個(gè)表以便實(shí)驗(yàn)需要。
1、INNER JOIN
1)、INNER JOIN返回兩個(gè)表中聯(lián)結(jié)字段相等的行,即兩個(gè)表中聯(lián)結(jié)字段都存在并且相等。
2)、INNER 連接二個(gè)數(shù)據(jù)表的語(yǔ)法:
? SELECT * FROM 表A INNER JOIN 表B ON 表A.字段 = 表B.字段;
3)、示例:
?
4)、INNER JOIN 連接三個(gè)數(shù)據(jù)表的用法:
SELECT * FROM (表1 INNER JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) INNER JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)
連接多個(gè)表以此類推
?
5)、INNER JOIN使用的時(shí)候若不加ON條件等價(jià)于FULL JOIN不不加ON條件 、CROSS JOIN
6、INNER INTO 后面的查詢的條件加在ON后面和WHERE效果是一樣的
2、LEFT JOIN(左外連接)
1)、LEFT JOIN返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄。
2)、LEFT JOIN連接二個(gè)數(shù)據(jù)表的語(yǔ)法:
? SELECT * FROM 表A LEFT JOIN 表B ON 表A.字段 = 表B.字段;
3)、LEFT JOIN示例:
4)、LEFT JOIN 連接三個(gè)數(shù)據(jù)表的用法:
SELECT * FROM (表1 LEFT JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) LEFT JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)
連接多個(gè)表以此類推
3、RIGHT JOIN(右外連接)
1)、RIGHT JOIN返回包括右表中的所有記錄和左邊表中聯(lián)結(jié)字段相等的記錄。
2)、RIGHT JOIN連接二個(gè)數(shù)據(jù)表的語(yǔ)法:
? SELECT * FROM 表A RIGHT JOIN 表B ON 表A.字段 = 表B.字段;
3)、RIGHT JOIN示例:
?
4)、RIGHT JOIN 連接三個(gè)數(shù)據(jù)表的用法:
?
SELECT * FROM (表1? RIGHT JOIN 表2 ON 表1.字段號(hào)=表2.字段號(hào)) RIGHT JOIN 表3 ON 表1.字段號(hào)=表3.字段號(hào)
?
連接多個(gè)表以此類推
4、FULL JOIN
MYSQL 不支持FULL JOIN 通過LEFT JOIN 與 RIGHT JOIN 來實(shí)現(xiàn)
用法:
select * from A left join B on A.id = B.id (where 條件)
union
select * from A right join B on A.id = B.id (where條件);
?
轉(zhuǎn)載于:https://www.cnblogs.com/huixuexidezhu/p/5470411.html
總結(jié)
以上是生活随笔為你收集整理的MYSQL学习笔记 (三)JOIN用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax实现二级联动
- 下一篇: Redis中的发布与订阅