是否可以在SQL中使用"空行"?

Cai*_*men 3 mysql sql

我正在使用MySQL.假设我有表A,B和C.表A是基表.表B和C都有表A的外键.但是我想拉出行,以便输出看起来像这样.

A | B    | C
----------------
1 | 1    | NULL
1 | 2    | NULL
1 | NULL | 1
1 | NULL | 2
2 | 3    | NULL
2 | NULL | 3
Run Code Online (Sandbox Code Playgroud)

因此,当B不再为某个键留下任何行时,查询将移至C并停止为B输出行.这看起来应该很简单,但我似乎无法想出它应该完成的方式.

此问题的标题可能没有意义,但我不确定如何最好地描述方案.

Ant*_*ist 6

想一想,OUTER JOIN不会给你想要的输出格式.尝试这样的事情:

SELECT a.id AS A, b.id AS B, NULL AS C
FROM tableA a
INNER JOIN tableB ON a.id = b.fid
UNION
SELECT a.id AS A, NULL AS B, c.id AS C
FROM tableA a
INNER JOIN tableC ON a.id = c.fid
ORDER BY 1
Run Code Online (Sandbox Code Playgroud)