我需要从ID可能不存在的表中获取ID列表和相应的字段.例如,表格如下:
id | status
-------------
1234 | A
4567 | B
1020 | C
我想从id = 4567和id = 7777的行中获取状态,如下所示:
Result:
id | status
-------------
4567 | B
7777 |
由于没有id = 7777的记录,因此应显示空状态字段.
到目前为止我所拥有的:当没有任何ID匹配的记录时,通过将结果与DUAL连接,我可以得到一个空行.例如:
SELECT id, status FROM DUAL LEFT OUTER JOIN mytable ON id='7777'
给出一个空行的结果:
id | status
-------------
|
但是为条件添加有效的id只返回一行:
SELECT id, status FROM mytable WHERE (id='7777' OR id='4567')
id | status
-------------
4567 | B
即使没有记录,如何使查询返回带有请求ID的行?
最佳答案
SELECT q.id, m.status
FROM (
SELECT 4567 AS id
FROM dual
UNION ALL
SELECT 7777 AS id
FROM dual
) q
LEFT JOIN
mytable m
ON m.id = q.id