Far*_*han 0 sql sql-server select join subquery
我有两张桌子:
表A
ID Name
-- ----
1 aaa
2 bbb
3 ccc
4 ddd
Run Code Online (Sandbox Code Playgroud)
表B
ID Name
-- --------
3 WWXXYYZZ
Run Code Online (Sandbox Code Playgroud)
我想从两个表中进行选择,但跳过 TableB 中存在的行。结果应该是这样的:
ID Name
-- --------
1 aaa
2 bbb
3 WWXXYYZZ
4 ddd
Run Code Online (Sandbox Code Playgroud)
我已经尝试过union,join但不知道如何实现这一目标。
-- Did not work
select *
from TableA
union
select *
from TableB
-- Did not work
select *
from
(
select *
from TableA
) x
join
(
select *
from TableB
) y
on x.ID = y.ID
Run Code Online (Sandbox Code Playgroud)
您可以将 join 保留b在 to 上a,并使用coalescePreferredb的行:
SELECT a.id, COALESCE(b.name, a.name) AS name
FROM a
LEFT JOIN b ON a.id = b.id
Run Code Online (Sandbox Code Playgroud)