##內連線查詢:
(1).隱式內連線:使用where條件消除無用的資料
*例子:
-- 查詢所有員工資訊和對應的部門資訊
select * from emp,dept where emp.`dept_id` = dept.`id`;
-- 查詢員工表的名稱,性別。部門表的名稱
select emp.name,emp.gender,dept.name from emp,dept where emp.`dept_id` = dept.`id`;
select
t1.name, -- 員工表的姓名
t1.gender,-- 員工表的性別
t2.name -- 部門表的名稱
from
emp t1,
dept t2
where
t1.`dept_id` = t2.`id`;
(2).顯式內連線:
* 語法: select 字段列表 from 表名1 [inner] join 表名2 on 條件
* * 例如:
select * from emp inner join dept on emp.dept_id
= dept.id
;
select * from emp join dept on emp.dept_id
= dept.id
;
左外連線:
* 語法:select 字段列表 from 表1 left [outer] join 表2 on 條件;
* 查詢的是左表所有資料以及其交集部分。
* 例子:
– 查詢所有員工資訊,如果員工有部門,則查詢部門名稱,沒有部門,則不顯示部門名稱
select t1.*,t2.name
from emp t1 left join dept t2 on t1.dept_id
= t2.id
;
右外連線:
* 語法:select 字段列表 from 表1 right [outer] join 表2 on 條件;
* 查詢的是右表所有資料以及其交集部分。
* 例子:
select * from dept t2 right join emp t1 on t1.dept_id
= t2.id
;
子查詢的結果是多行多列的:
– 普通內連線
select * from emp t1,dept t2 where t1.dept_id
= t2.id
and t1.join_date
> 『2011-11-11』
mySQL連線查詢(多表查詢)的分類
連線查詢分類 按照分類 1 內連線 2 外連線 3 交叉連線 說明 sql分92版本和99版本,92版本值包含 1 內連線 而99版本包含上面所有,且99版本的 1 內連線 於92版本有所不同 一 92版本格式 select 查詢列表 from 表1 別名,表2 別名 where 鏈結條件1 and...
Mysql 中多表查詢
即mysql中的交叉查詢 內連線 左連線 右連線 聯合查詢 全連線。交叉查詢 cross join 我們現在以這兩張表為例 剛剛我們是通過兩條語句來查詢的兩張表,現在我們嘗試著用一條語句來查詢這兩張表 上圖中,我們看到我們查詢出來了,語句中並沒有新增別的附加條件,仔細觀察課可以發現,這兩張表中的每一...
017 mySQL多表查詢(連續查詢) 分類
一 概念 笛卡爾積 有兩個表a b,取這兩個表所有有可能組成情況。笛卡爾積會產生很多無用資料,需要消除無用資料。二 分類 1 內連線 2 外連線 3 交叉連線 子查詢 說明 sql分92版本和99版本,92版本值包含 1 內連線 而99版本包含上面所有,且99版本的 1 內連線 於92版本有所不同 ...