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