T SQL語句 多表查詢

2021-08-21 21:40:40 字數 1231 閱讀 8581

1.內連線

內連線(inner join):只返回兩個資料集合之間匹配關係的行,將位於兩個互相交叉的資料集合中重疊部分以內的資料行連線起來。

內連線使用比較運算子進行表間某些列資料的比較操作,並列出這些表中與連線相匹配的資料行。

select a.name 姓名a,a.school 學校a,b.name 姓名b,b.job 職業b from a,b where a.name=b.name

select a.name 姓名a,a.school 學校a,b.name 姓名b,b.job 職業b from a inner join b on a.name=b.name

若列名在兩表中不衝突,則可以省略表名。

2.左外連線

左外連線(left join 或left outer join)的結果集包括左表的所有行。如果左表的某一行在右表中沒有匹配行,則將為右表返回空值,否則返回相應值。

select a.name 姓名a,a.school 學校a,b.name 姓名b,b.job 職業b from a left join b on a.name=b.name

表a中的資料行全部顯示出來,表b中的資料只顯示了與連線條件匹配的行,其他行都以null值代替。

3.右外連線

右外連線(right join 或right outer join)是左外連線的反向連線,將返回右表的所有行。如果右表的某一行在左表中沒有匹配行,則將為右表返回空值,否則返回相應值。

select a.name 姓名a,a.school 學校a,b.name 姓名b,b.job 職業b from a right join b on a.name=b.name

表b中的資料行全部顯示出來,表a中的資料只顯示了與連線條件匹配的行,其他行都以null值代替。

4.全外連線/完整外連線

全外連線/完整外連線(full join 或full outer join)將返回左表和右表中的所有行。當某一行在另乙個表中沒有匹配行時,另乙個表返回空值,否則返回相應值。

select a.name 姓名a,a.school 學校a,b.name 姓名b,b.job 職業b from a full join b on a.name=b.name

表a與表b中的資料行全部顯示出來,與連線條件不匹配的資料行都以null值代替。

5.交叉連線

交叉連線就是表之間沒有任何關聯條件,查詢將返回左表與右表挨個連線的所有行,就是左表中的每一行與右表中的所有行再一一組合,相當於兩個表「相乘」。

T SQL查詢語句(一)

主要記錄用到的t sql查詢例項,用 和說明。定義列別名 查詢 t student 表中15電腦科學與技術 1 專業同學的studentid 學號 studentname 姓名 和student 性別 結果中各列的標題分別指定為 學號 姓名和性別 消除結果集中的重複行 對 t student 表中只...

php 多表查詢 語句

select from yonghu where login name lhp and login pwd 123 select from juese select from yonghu where yonghu id 1 select juese id from juese where jues...

6 多表查詢語句

六 多表查詢語句 連線型別 自然連線 natural joins 外連線 outer joins 交叉連線 cross joins 建立自然連線 1 兩個表中所有相同名字的列 2 選取匹配列的相同值 3 列的資料型別要一致 select e.ename,e.job,e.sal,d.dname fro...