表A
+----+-------+--------------+-------+----------+
| Id | EName | Company Code | State | City |
+----+-------+--------------+-------+----------+
| 1 | Tom | 110 | NC | Ashville |
| 2 | Dick | | | |
| 3 | Harry | | | |
| 4 | Tonny | 667 | MN | St.pauls |
+----+-------+--------------+-------+----------+
表B
+----+-------+--------------+-------+----------+
| Id | EName | Company Code | State | City |
+----+-------+--------------+-------+----------+
| 1 | Tom | 110 | NC | Ashville |
| 2 | Dick | 111 | MN | Minesota |
| 3 | Harry | 112 | CA | Oregon |
+----+-------+--------------+-------+----------+
O / p
+----+-------+--------------+-------+----------+
| Id | EName | Company Code | State | City |
+----+-------+--------------+-------+----------+
| 1 | Tom | 110 | NC | Ashville |
| 2 | Dick | 111 | MN | Minesota |
| 3 | Harry | 112 | CA | Oregon |
| 4 | Tonny | 667 | MN | St.pauls |
+----+-------+--------------+-------+----------+
查询:
SELECT Ename,
COALESCE(A.ID, B.ID) AS ID
FROM `Table A` AS A,
`Table B` AS B
WHERE A.`id_column_1`=B.`id_column_1`
UNION ALL
SELECT `Ename,`ID`
FROM `Table B`
WHERE `Id` IS NOT NULL
因为我只想为表A中不存在的记录从表B中选择ID。请告诉我查询中出了什么问题。谢谢。
答案 0 :(得分:4)
我认为您想从a
中提取b
中缺少的信息。如果是这样:
select a.id,
coalesce(a.name, b.name) as name,
coalesce(a.company, b.company) as company,
coalesce(a.state, b.state) as state,
coalesce(a.city, b.city) as city
from a left join
b
on a.id = b.id;