我正试图从2个表中建立联盟。两者都包含相同的列,但其中一列除外。
例如:
表A:
姓名,电话
表B:
姓名,姓氏,其他姓名
我想从两个表中创建一个联合,并按姓氏列对它们进行排序。它工作正常。
但是,现在我想知道一行来自第一个表或第二个表。我的结果会有名字,姓氏,电话,其他姓名,但只有电话,在该栏中保留两个结果。
有没有办法保留两列,并在不存在时填充空值?
现在,这是我的问题:
SELECT id, name, surname ai, phone FROM tableA WHERE status = 0
UNION ALL
SELECT id, name, surname ai, other FROM signedupLocal WHERE status = 0
ORDER BY ai ASC
答案 0 :(得分:2)
试试这个...
SELECT id, name, surname ai,phone, NULL as other FROM tableA WHERE status = 0
UNION ALL
SELECT id, name, surname ai, NULL as phone, other FROM signedupLocal WHERE status = 0
ORDER BY ai ASC
答案 1 :(得分:2)
您可以为其他表中缺少的字段创建空白临时列,例如
SELECT id, name, surname, phone, '' as other FROM TableA WHERE status = 0
UNION ALL
SELECT id, name, surname,'' as phone,otherColumn FROM TableB WHERE status = 0