九 MySql資料庫 關聯查詢(九)

2021-10-02 12:41:02 字數 1692 閱讀 6866

1.1 交叉連線(笛卡爾乘積現象)

交叉連線查詢(不推薦。產生笛卡爾乘積現象:4 * 4=16,有些是重覆記錄)

select empname,deptname from employee,dept;

笛卡爾乘積現象:

假如employee有4條記錄,dept有4條記錄,

那麼上面的sql查詢結果,則為 4*4 條記錄。

1.2 內連線查詢
++

+ 內連線查詢:左右兩邊的表相互匹配,只有滿足條件的結果才會顯示,如果不滿足條件,則不顯示。

-- 需求:查詢員工及其所在部門(顯示員工姓名,部門名稱)

-- 內連線方式一:

select empname,deptname -- 2)確定哪些哪些字段

from employee,dept -- 1)確定查詢哪些表

where employee.deptid=dept.id -- 3)表與表之間連線條件

-- 內連線方式二:

select empname,deptname

from employee

inner join dept

on employee.deptid=dept.id;

-- 使用別名

select e.empname,d.deptname

from employee e

inner join dept d

on e.deptid=d.id;

1.3 左連線查詢
++

+ 左[外]連線查詢:

1.使用左邊表的資料逐一去匹配右邊表的所有資料,如果符合連線條件的結果則顯示,

如果不符合連線條件則顯示null。

2.左外連線:左表的資料一定會全部顯示!,以左表為主。

-- 需求:查詢每個部門的員工

-- 預期結果:

軟體開發部 張三

軟體開發部 李四

應用維護部 王五

秘書部 陳六

總經辦 null

select d.deptname,e.empname

from dept d

left outer join employee e

on d.id=e.deptid;

1.4 右連線查詢
++

+右[外]連線查詢:

1.使用右邊表的資料去匹配左邊表的資料,如果符合連線條件的結果則顯示,如果不符合連線條件則顯示null

2.右外連線:右表的資料一定會全部顯示!,以右表為主。

select d.deptname,e.empname

from employee e

right outer join dept d

on d.id=e.deptid;

1.5 自連線查詢
-- 需求:查詢員工及其上司

-- 預期結果:

-- 張三 null

-- 李四 張三

-- 王五 李四

-- 陳六 王五

select e.empname,b.empname

from employee e

left outer join employee b

on e.bossid=b.id

資料庫關聯查詢

使用者授權,我們涉及到了三個物件 1 使用者名稱root 2 密碼 3 主機localhost 建立名字為qq的使用者 create user qq localhost 建立名字為anan使用者並新增密碼 create user anan localhost identified by 123 建立...

資料庫多表關聯查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。外連線可分為 左連線 右連線 完全外連線。1 左連線 left join...

mysql關聯查詢去重 MySQL 關聯查詢

mysql 關聯查詢 sql資料分析 1週前 mysql 關聯查詢 前面,我們介紹的都是單錶查詢 就是只從一張表中獲取資料 而實際應用的時候,我們都會同時查詢多張表,這裡,我們就介紹下,多表關聯查詢的使用。sql join 用於根據兩個或多個表中的列之間的關係,從這些表中查詢資料 前置知識 主鍵 p...