mysql关联查询语句
生活随笔
收集整理的這篇文章主要介紹了
mysql关联查询语句
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MySQL關聯查詢
- 前言
- 內連接
- 等值內連接
- where子句
- on子句
- using子句
- 自然連接
- 非等值內連接
- 外連接
- 左外連接
- 右外連接
- 全外連接
- 交叉連接
前言
MySQL中當查詢數據來自多張表時需要用到關聯查詢,其中關聯查詢又分為內連接、外連接、交叉連接。
創建兩張表,分別是學生表、課程表。建表語句如下:
內連接
內連接又分為等值內連接與非等值內連接。其中等值內連接涉及where子句、on子句、using子句以及自然連接。
等值內連接
where子句
查詢每個員工的編號、姓名、薪資、部門名稱。
select employee.empNo,employee.eName,employee.salary,demp.dempName from employee,demp WHERE employee.dempNo=demp.dempNo;結果:
on子句
查詢員工姓名、薪水、部門名稱
select e.eName,e.salary,d.dempName FROM demp d inner JOIN employee e ON e.dempNo=d.dempNo;using子句
查詢員工姓名、薪水、部門名稱
select e.eName,e.salary,d.dempName from demp d INNER JOIN employee e USING(dempNo);自然連接
以左右兩表相同字段作為關聯條件,會自動去掉重復字段。
select e.eName,e.salary,d.dempName FROM demp d NATURAL JOIN employee e;非等值內連接
> < != between and都屬于非等值條件。
select e.empNo,e.eName,e.dempNo,d.dempName from employee e,demp d WHERE e.dempNo=d.dempNo AND e.empNo BETWEEN 1 AND 3;外連接
外連接主要分為左外連接、右外連接、全外連接。
左外連接
在內連接的基礎上保證左表的數據都有,右表的字段用null補充,同樣的字段會重復出現。
select * FROM demp d LEFT JOIN employee e on d.dempNo=e.dempNo;右外連接
在內連接的基礎上保證右表的數據都有,左表的字段用null補充,同樣的字段會重復出現。
select * from employee d RIGHT JOIN demp e on d.dempNo=e.dempNo;全外連接
在內連接基礎上保證左右表的數據都有,是左連接和有連接的并集
select * from employee e full JOIN demp d on e.dempNo=d.dempNo;需要關注的是,mysql中并不支持全外連接,想要實現全外連接可以通過union。
交叉連接
左表每條記錄與右表每條記錄首尾相連,創建數據庫demp表中有4條數據,employee表中有5條數據,即查詢結果共有4*5=20條記錄。
select * from demp d CROSS JOIN employee e;over;
總結
以上是生活随笔為你收集整理的mysql关联查询语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql关联子查询_MySQL 关联子
- 下一篇: mysql 关联字段 查询_Mysql关