当尝试从子查询中选择字段时,如果任何子查询不返回任何行,则不会返回任何内容(甚至不返回空结果集)
SELECT sub1.field, sub2.another_field
FROM (
(
SELECT field
FROM table
WHERE id=1
) AS sub1, (
SELECT another_field
FROM table
WHERE id=2
) AS sub2
)
Run Code Online (Sandbox Code Playgroud)
NULL当子查询返回 0 行时,我希望有一个包含值的行。
您需要按如下方式进行外连接
SELECT sub1.field, sub2.another_field
FROM (
SELECT field, id
FROM tab1
WHERE id=1
) AS sub1 LEFT OUTER JOIN (
SELECT another_field, id
FROM tab1
WHERE id=2
) AS sub2
ON sub1.id = 1 and sub2.id = 2
Run Code Online (Sandbox Code Playgroud)