程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL語句學習,外連接與條件配合使用

SQL語句學習,外連接與條件配合使用

編輯:關於SqlServer

select * from ProductTable inner join ProductClassTable on ProductTable.ClassId=ProductClassTable.Id where exists(select Id from ProductClassTable)
 
declare @tbl1 table(id1 char(10) ,name1 char(10))
insert @tbl1 select
'1','a' union select
'2','b' union select
'33','d' union select
'44','e'
select '第一','個表' union all
select * from @tbl1
declare @tbl2 table(id2 char(10),name2 char(10))
insert @tbl2 select
'1','a' union select
'2','b' union select
'55','d' union select
'66','e'
select '第二','個表' union all
select * from @tbl2
select '內連接','記錄數=','表1表2','關聯的記錄' union all
select * from @tbl1 as a inner join @tbl2 as b  on a.id1 = b.id2----內連接,只連接匹配的行
select '左連接','','關聯記錄外','表1記錄全有' union all
select * from @tbl1 as a left join @tbl2 as b  on a.id1 = b.id2----左連接,包含左邊表的全部行(不管右邊的表中是否存在與它們匹配的行),以及右邊表中全部匹配的行
select  '右連接','','關聯記錄外','表2記錄全有' union all
select * from @tbl1 as a right join @tbl2 as b   on a.id1 = b.id2----右連接,包含右邊表的全部行(不管左邊的表中是否存在與它們匹配的行),
以及左邊表中全部匹配的行
select '全連接','',' 表1和表2','所有記錄' union all
select * from @tbl1 as a full join @tbl2  as b   on a.id1 = b.id2 ----全連接,包含左、右兩個表的全部行,不管另外一邊的表中是否存在與它們匹配的行
select '交差連接','記錄數=','表1記錄數×','表2記錄數' union all
select * from @tbl1 as a cross join @tbl2  as b   
----交差連接,生成笛卡爾積-它不使用任何匹配或者選取條件,而是直接將一個數據源中的每個行與另一個數據源的每個行都一一匹配
  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved