当子查询返回 0 行时,Mysql 查询不返回任何内容

Red*_*Taz 4 mysql subquery

当尝试从子查询中选择字段时,如果任何子查询不返回任何行,则不会返回任何内容(甚至不返回空结果集)

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 行时,我希望有一个包含值的行。

Che*_*min 5

您需要按如下方式进行外连接

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)