mysql 关联字段 查询_Mysql关联查询总结
Mysql關聯查詢的分類
關聯查詢語法
內連接
SELECT
e.`name`,e.sex,d.deptName
FROM emp e
inner JOIN dept d
on
e.deptId=d.deptId
左外關聯
select
e.name,e.sex,d.deptName
from dept d
left join emp e
on
d.deptId=e.deptId
右外關聯
select
e.name,e.sex,d.deptName
from dept d
right join emp e
on
d.deptId=e.deptId
全外關聯
select
e.name,e.sex,d.deptName
from dept d
right join emp e
on
d.deptId = e.deptId
union
select
e.NAME,e.sex,d.deptName
from dept d
left join emp e
on
d.deptId = e.deptId
自連接
select
e.name as empName,
b.name as bossName
from emp e
left join emp b
on e.boosId=b.id
在Mysql關聯查詢中 可以大概分為以下幾種關聯查詢分時分別如下 內連接 外連接(左外連接 右外連接 全外連接) 自連接
內連接
特點
只查詢兩張表能關聯上的字段信息,如果關聯不上什么信息都不顯示
思路
編寫關聯查詢分為三個步驟先確定需要關聯的表
在確定需要查詢的字段
最后確定表之間的關聯字段
使用
例如 我有兩張表分別是 emp 表 和 dept表 它們的字段如下
emp
dept
假如我們有如下需求我們要查詢這個員工所在的部門名稱以及它的姓名與性別 我們該如何操作呢,我們會發現這兩個表沒有哪一張表是把整個數據都存進去的, 這個時候我們就要用到關聯查詢了 我們先來看看內連接是個怎么樣的效果吧
兩張表的數據如下
emp
dept
sql語句如下
SELECT e.`name`,e.sex,d.deptName FROM emp e inner JOIN dept d on e.deptId=d.deptId
查詢結果如下
總結:這個時候我們會發現沒有周六的信息是不是非常符合內連接的特定呢? 只查詢兩張表能關聯上的字段信息,如果關聯不上什么信息都不顯示
外連接
分類
左連接
特點
以左邊的表為基礎關聯另外的表,左邊的表的字段無論如何都會被查詢出來,如果左邊的表關聯不上另外一張表則另外一張表的字段顯示為空值
使用
兩張表數據如下
emp
dept
需求還是查詢員工的姓名以及性別和所屬部門
sql語句如下
select e.name,e.sex,d.deptName from dept d left join emp e on d.deptId=e.deptId
查詢結果如下
總結:這個時候我們會發現部門為設計部的信息是不是非常符合左外連接的特點呢? 以左邊的表為基礎關聯另外的表,左邊的表的字段無慮如何都會被查詢出來,如果左邊的表關聯不上另外一張表則另外一張表的字段顯示為空值
右連接
特點
以右邊的表為基礎關聯另外的表,右邊的表的字段無慮如何都會被查詢出來,如果右邊的表關聯不上另外一張表則另外一張表的字段顯示為空值
使用
兩張表數據如下
emp
dept
需求還是查詢員工的姓名以及性別和所屬部門
sql語句如下
select e.name,e.sex,d.deptName from dept d right join emp e on d.deptId=e.deptId
查詢結果如下
總結:這個時候我們會發現員工周六的信息是不是非常符合右外連接的特點呢? 以右邊的表為基礎關聯另外的表, 右邊的表的字段無慮如何都會被查詢出來,如果右邊的表關聯不上另外一張表則另外一張表的字段顯示為空值
全外連接
特點
把兩張表全部都為基礎表,沒有關聯上的字段顯示為空值
使用
兩張表的數據如下
emp
dept
sql語句如下
SELECT
e.NAME,
e.sex,
d.deptName
FROM
dept d
RIGHT JOIN emp e ON d.deptId = e.deptId
UNION
SELECT
e.NAME,
e.sex,
d.deptName
FROM
dept d
left JOIN emp e ON d.deptId = e.deptId
總結這個時候我們會發現這種查詢方式是不是非常符合全外連接的特點呢? 把兩張表全部都為基礎表,沒有關聯上的字段顯示為空值
自連接
特點
把同一張表看成是另外一張表在這張表的基礎上面做關聯查詢這種查詢方式被稱作為自連接
使用
兩張表數據如下
emp
dept
需求查詢每個員工的姓名以及上級領導的名稱是誰?
sql語句如下
select e.name as empName,b.name as bossName from emp e left join emp b on e.boosId=b.id
查詢結果如下
總結:這個時候我們會發現這種查詢方式是不是非常符合自連接的特點呢? 把同一張表看成是另外一張表在這張表的基礎上面做關聯查詢這種查詢方式被稱作為自連接
總結
以上是生活随笔為你收集整理的mysql 关联字段 查询_Mysql关联查询总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql关联查询语句
- 下一篇: mysql 联合查询_MySQL联合查询