select A.AID,A.NAME,B.BID,B.NAME from A FULL JOIN B ON A.NAME=B.NAME
select a.aid,a.name,b.bid,b.name from tableA a left join tableB b on a.name=b.name union select a.aid,a.name,b.bid,b.name from tableB b left join tableA a on a.name=b.name
不行呀,这样得到的结果只有三条数据了,没有那种空的。 SQL> WITH A AS ( 2 select 'a' as AID,'A' AS NAME FROM DUAL UNION ALL 3 select 'b' as AID,'B' AS NAME FROM DUAL UNION ALL 4 select 'c' as AID,'C' AS NAME FROM DUAL 5 ),B AS ( 6 select 'd' as BID,'A' AS NAME FROM DUAL UNION ALL 7 select 'e' as BID,'E' AS NAME FROM DUAL UNION ALL 8 select 'f' as BID,'F' AS NAME FROM DUAL 9 ) 10 select A.AID,A.NAME,B.BID,B.NAME 11 from A FULL JOIN B 12 ON A.NAME=B.NAME;A N B N - - - - a A d A e E f F c C b BSQL> 测试结果,自己看,真不知道你实际是咋写的,晕死
from A FULL JOIN B
ON A.NAME=B.NAME
union
select a.aid,a.name,b.bid,b.name from tableB b left join tableA a on a.name=b.name
SQL> WITH A AS (
2 select 'a' as AID,'A' AS NAME FROM DUAL UNION ALL
3 select 'b' as AID,'B' AS NAME FROM DUAL UNION ALL
4 select 'c' as AID,'C' AS NAME FROM DUAL
5 ),B AS (
6 select 'd' as BID,'A' AS NAME FROM DUAL UNION ALL
7 select 'e' as BID,'E' AS NAME FROM DUAL UNION ALL
8 select 'f' as BID,'F' AS NAME FROM DUAL
9 )
10 select A.AID,A.NAME,B.BID,B.NAME
11 from A FULL JOIN B
12 ON A.NAME=B.NAME;A N B N
- - - -
a A d A
e E
f F
c C
b BSQL>
测试结果,自己看,真不知道你实际是咋写的,晕死