多表链接查询中可以使用外链接吗?求SQL语句
--A表
PART_NO PART_NAME J_NO
-------- ---------- -------
TEST1 NAME1 MJ1
TEST2 NAME2 MJ2
TEST3 NAME3 NULL
MJ1 J001 NULL
MJ2 J002 NULL
--B表
mk_no part_no
-------- ----------
M01 TEST1
M02 TEST2
M03 TEST3
--想到的结果如下(仅限用SELECT)
B.mk_no A.PART_NO A.PART_NAME A.J_NO PART_NAME
-------- -------- ---------- ------- ----------
M01 TEST1 NAME1 MJ1 J001
M02 TEST2 NAME2 MJ2 J002
M03 TEST3 NAME3 NULL NULL
直接使用SELECT 加外链接可否实现?该如何实现?
------解决方案--------------------declare @A table(PART_NO varchar(20),PART_NAME varchar(20),J_NO varchar(20))
insert into @A
select 'TEST1 ', 'NAME1 ', 'MJ1 ' union all
select 'TEST2 ', 'NAME2 ', 'MJ2 ' union all
select 'TEST3 ', 'NAME3 ',null union all
select 'MJ1 ', 'J001 ',null union all
select 'MJ2 ', 'J002 ',null
declare @B table(mk_no varchar(20),part_no varchar(20))
insert into @B
select 'M01 ', 'TEST1 ' union all
select 'M02 ', 'TEST2 ' union all
select 'M03 ', 'TEST3 '
select b2.*,a2.PART_NAME from @A a2 right join (
select b.*,a.PART_NAME,a.J_NO from @A a right join @B b on a.PART_NO=b.part_no
) b2 on a2.PART_NO=b2.J_NO
/*result
mk_no part_no PART_NAME J_NO PART_NAME
-------------------- -------------------- -------------------- -------------------- --------------------
M01 TEST1 NAME1 MJ1 J001
M02 TEST2 NAME2 MJ2