第1个回答 2008-01-25
declare @employees table(Employee_ID int , Name nvarchar(20))
insert into @employees select 01, 'Hansen Ola' union all
select 02, 'Svendson Tove' union all
select 03, 'Svendson Stephen' union all
select 04, 'Pettersen Kari'
declare @Orders table(Prod_ID int, Product nvarchar(10),Employee_ID int)
insert into @Orders select 234,'Printer',01 union all
select 657,'Table',03 union all
select 865,'Chair',03
--full outer join
select a.Employee_ID,Name,Product from @Employees as a full outer join @Orders as b on a.Employee_ID=b.Employee_ID
/*结果
Employee_ID Name Product
----------- -------------------- ----------
1 Hansen Ola Printer
2 Svendson Tove NULL
3 Svendson Stephen Table
3 Svendson Stephen Chair
4 Pettersen Kari NULL
*/
--inner join
select a.Employee_ID,Name,Product from @Employees as a inner join @Orders as b on a.Employee_ID=b.Employee_ID
/*结果
Employee_ID Name Product
----------- -------------------- ----------
1 Hansen Ola Printer
3 Svendson Stephen Table
3 Svendson Stephen Chair
*/
--left join
select a.Employee_ID,Name,Product from @Employees as a left join @Orders as b on a.Employee_ID=b.Employee_ID
/*
Employee_ID Name Product
----------- -------------------- ----------
1 Hansen Ola Printer
2 Svendson Tove NULL
3 Svendson Stephen Table
3 Svendson Stephen Chair
4 Pettersen Kari NULL
*/
--right join
select a.Employee_ID,Name,Product from @Employees as a right join @Orders as b on a.Employee_ID=b.Employee_ID
/*
Employee_ID Name Product
----------- -------------------- ----------
1 Hansen Ola Printer
3 Svendson Stephen Table
3 Svendson Stephen Chair
*/