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 ----交差連接,生成笛卡爾積-它不使用任何匹配或者選取條件,而是直接將一個數據源中的每個行與另一個數據源的每個行都一一匹配