/*
聯接查詢 :當要同時顯示多個表資料的情況下
*//*
外聯接左外聯接
右外聯接*/
/*左外聯接:改變表出現的順序有影響,因
為前面出現的是左表
左外聯接
第1種說法
第1步顯示內聯接所有資料
第2步看左表中是否有沒匹配的,有的話原樣列出,右表部分用null補齊
第2種說法
第1步列出左表所有資料
第2步右表與之匹配的顯示,其它用null補齊
最好是用第一種說法,第二種說法容易被迷惑,因為左表中的同一條資料可能出現多次*/
select
* from
student as stu --左表
left join
exam exa --右表 可以省略as關鍵字
on (stu.stuid = exa.stuid)
select
* from
student as stu --左表
left join
exam exa --右表 可以省略as關鍵字
on (stu.stuid = exa.stuid) /*
右外聯接
第1種說法
第1步顯示內聯接所有資料
第2步看右表中是否有沒匹配的,有的話原樣列出,左表部分用null補齊
*/select
* from
student as stu --左表
left join
exam exa --右表 可以省略as關鍵字
on (stu.stuid = exa.stuid)
--可以調換下順序
select
* from
exam exa --左表
right join
student as stu--右表 可以省略as關鍵字
on (stu.stuid = exa.stuid)
/*內聯接 as可以省略,on後面的小括號()也可以省略,但是不建議省略小括號()
內聯接 顯示外來鍵表所有資料,並顯示主鍵表與之匹配的資料
內聯接:改變表出現順序沒有影響
*/select
stu.stuaddress,stu.stuname,exa.labexam, exa.writtenaxam, *
from
student as stu
inner join
exam exa --可以省略as關鍵字
on (stu.stuid = exa.stuid)
/*內聯接的另一種寫法,這種寫法不推薦使用,2個表沒啥問題,3個表或3個表以上就容
易出錯,沒出錯算你運氣好
*/select *
from
student as stu ,exam as exa
where
stu.stuid = exa.stuid /*
完全外聯接 = 左外聯接 + 右外聯接
*/select
* from
student as stu
full join
exam exa --可以省略as關鍵字
on (stu.stuid = exa.stuid)
/*交叉聯接(笛卡爾積)*/
select
student.*, exam.*
from
exam,student
--select
student.*, exam.*
from
student
cross join
exam
cross join
student2
SQL Server資料查詢之聯接查詢
四 聯接查詢 1.聯接 1.1內聯接 inner join 1.2外聯接 outer join 1.2.1左聯接 left join 1.2.2右聯接 right join 1.3交叉聯接 cross join 2.內聯接與自聯接 內聯接 作用於兩個表,一般通過兩個表中相同的字段的關係 建立聯絡 自...
SQL聯接查詢
舉例有兩表資訊如下 以上兩種查詢方式等價,如下圖所示內聯接inner join只取兩表存在關聯關係的資料 注 inner join與join相同,inner可省略不寫。查詢結果如下 如下圖所示,左聯接 左外聯接 左表 user表 資料將會完全展示,右表 dept表 只展示與左表存在關聯關係的資料。注...
SQL聯接查詢
聯接查詢 join表操作符對兩個輸入表進行了操作。聯結有三種基本型別 交叉連線,內連線,外鏈結。這三種連線的區別是它們採用的邏輯查詢處理步驟各部相同,每種連線都有一套不同的步驟。交叉連線只有乙個步驟 笛卡爾積 內連線有兩個步驟 笛卡爾積,過濾 外鏈結有三個步驟 笛卡爾積,過濾,新增外部行。交叉連線 ...