SQL sever中有關鏈接查詢問題的簡單回答

不少人再剛接觸到SQL sever的時候遇到了不少困難,小編也和你們一樣,所以今天寫下來我的學習後的總結同時裏面也有些與老師講的做對比的內容,希望對您有所幫助。

多表查詢—鏈接查詢
   概念:根據兩個表或多個表的列之間的關係,從這些表中查詢數據。
   目的:實現多個表查詢操作。

內鏈接:
簡單方法:
select * from t1 –表 a –表的代稱 ,t2 b where a.studentid = b.studentid –鏈接列
select * from  t1 a inner join t2 b on a.studentid = b.studentid

 

 

 

select * from  t1 a inner join t2 b on a.studentid > b.studentid

 

 

select * from  t1 a inner join t2 b on a.studentid < b.studentid

 

 

select * from  t1 a inner join t2 b on a.studentid >= b.studentid

 

 

 

老師講授的方法:

1、Select t10.產品編號, t10.產品名稱,t10.現庫存,t10.進貨量,t11.進貨量,t11.售出量 fromt10 inner join t11 on( t10.產品編號= t11.產品編號)

 

2、Select a.產品編號,a.產品名稱,a.現庫存,a.進貨量,b.進貨量,b.售出量 from t10a inner join t11 b on( a.產品編號 =b.產品編號)

 

3、Select t10.產品編號, t10.產品名稱,t10.現庫存,t10.進貨量,t11.進貨量,t11.售出量,

T10.進貨量-t10現庫存as ‘售出貨物量’—varchar類型不能進行運算

(t10.進貨量-t10.現庫存)* (t11.售出價-t11.進貨價)as ‘利潤’

 fromt10 inner join t11 on( t10.產品編號= t11.產品編號)

 

外連接:
左鏈接:
select * from t1 a left join t2 b on a.studentid = b.studentid
返回左表中的所有行,如果左表中行在右表中沒有匹配行,則結果中右表中的列返回空值。

 

右鏈接:
select * from t1 a right join t2 b on a.studentid = b.studentid
以右鏈接爲基準,t1表格與t2表格按照studentid對應匹配若t1沒有與之對應的值則系統默認爲null值


全鏈接:
select * from t1 a full join t2 b on a.studentid = b.studentid
將兩表格按照studentid進行匹配,當某一行沒有匹配的行,則另一表中所有列反回空值

 

 


交叉鏈接:(也稱爲笛卡兒積)
select * from t1,t2 or select * from t1 cross join t2
左表和右表組合,t2表的每個行數分別與t1表的所有行數組合,返回結果的行數等於兩個錶行數的乘積。

 


如果帶where,返回或顯示的是匹配的行數:
select * from t1 cross join t2 where t1.studentid = t2.studentid

 

 

讀者朋友們看完該博客後如果有什麼好的意見或者發現什麼不足,請一定要告訴小編,同時感謝您爲小編帶來成長的可能,希望您學業有成!!!

多謝!!!吐舌頭

同時也歡迎對我的另一篇文章提出指正https://blog.csdn.net/vlllllv/article/details/80150942

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章