Sql 将不同的表与相同的列合并,不带歧义
我有疑问。我有三张桌子Sql 将不同的表与相同的列合并,不带歧义,sql,oracle,Sql,Oracle,我有疑问。我有三张桌子 table A ---------------------------- NAME | CODE ---------------------------- bob | PL david | AA susan | PL joe | AB table B ---------------------------- CODE | DESCRIPTION ----------
table A
----------------------------
NAME | CODE
----------------------------
bob | PL
david | AA
susan | PL
joe | AB
table B
----------------------------
CODE | DESCRIPTION
----------------------------
PL | code 1
PB | code 2
PC | code 3
table C
----------------------------
CODE | DESCRIPTION
----------------------------
AA | code 4
AB | code 5
AC | code 6
表B和C有唯一的行。
我需要的结果是:
----------------------------
NAME | CODE | DESCRIPTION
----------------------------
bob | PL | code 1
david | AA | code 4
susan | PL | code 1
joe | AB | code 5
到目前为止我都试过了
你很接近了。我想您只需要
COALESCE()
:
我认为工会会做到这一点。此外,如果存在重复项,它还将删除重复项
SELECT A.NAME , UN.CODE ,UN.DESCRIPTION
FROM A,
(SELECT CODE,DESCRIPTION FROM B
UNION
SELECT CODE,DESCRIPTION FROM C ) UN
WHERE A.CODE = UN.CODE;
请张贴代码以及谢谢。我在考虑使用“联合”。我想使用“coalesce”更优雅。
SELECT A.NAME , UN.CODE ,UN.DESCRIPTION
FROM A,
(SELECT CODE,DESCRIPTION FROM B
UNION
SELECT CODE,DESCRIPTION FROM C ) UN
WHERE A.CODE = UN.CODE;