SQLServer數據庫之連接查詢


SQLServer數據庫之連接查詢


表的連接查詢的幾種方法介紹:
inner join on內連接,left join on 左連接 , rigth join on 右連接, full join on 全連接

內連接(inner join)

內連接為查詢兩表的共有的數據,取兩表的交集

語法:

select [查詢內容] from [表1] inner join [表2] on [連接條件]

例如:查詢學生所在的班級

select s.name as 姓名,c.name as 班級 from student s inner join class c on s.classId=c.id	
--等價與
select s.name as 姓名 ,c.name as 班級 from student s, class c where s.classId=c.id  --必須加上條件,不然會出大問題
--也可以把inner省掉效果一樣 默認為Inner join 連接

左連接(left join)

左連接以查詢主表全部數據,如果從表沒有響應數據則以null作為填充
(主表為查詢表,從表為連接的表)
語法:

select [查詢內容] from [表1] left join [表2] on [連接條件]

例如

select s.name as 姓名,c.name as 班級 from student s 
			left join class c on s.classId=c.id	

如圖:小思和小林像個班級的孩子

右連接(right join)

從表查詢全部數據,如果主表沒有數據則以null填充
(主表為查詢表,從表為連接的表)
語法:

select [查詢內容] from [表1] right join [表2] on [連接條件]

例如

select s.name as 姓名,c.name as 班級 from student s 
			right join class c on s.classId=c.id	

如圖:大三和大四沒有學員

全連接(full join)

主從表全部數據,如果主從表沒有對應數據則以null填充
(主表為查詢表,從表為連接的表)
語法:

select [查詢內容] from [表1] full join [表2] on [連接條件]

例如

select s.name as 姓名,c.name as 班級 from student s 
			full join class c on s.classId=c.id	

如圖:

總結:
在項目中為了適應不同的需求選擇合適的連接方式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM