SQL 查询到 return 来自多个表的所有数据
SQL query to return all data from multiple tables
比如我有2张表,tableA
和tableB
。
tableA
id name age
1 nameA 10
2 nameB 11
tableB
id name age address
3 nameC 10 test
4 nameD 11 test
当我使用 SELECT * FROM tableA FULL OUTER JOIN tableB ON tableA.id = tableB.id
时,我得到
id name age id name age address
1 nameA 10
2 nameB 11
3 nameC 10 test
4 nameD 11 test
有没有办法正确合并数据?
像这样:
id name age address
1 nameA 10
2 nameB 11
3 nameC 10 test
4 nameD 11 test
这些表与您尝试加入它们的列 id
无关,因此您需要 UNION ALL
:
SELECT *, null address FROM tableA
UNION ALL
SELECT * FROM tableB
由于 tableA
只有 3 列,因此向其中添加了第 4 个虚拟 null
列以匹配 tableB
的列数。
比如我有2张表,tableA
和tableB
。
tableA
id name age
1 nameA 10
2 nameB 11
tableB
id name age address
3 nameC 10 test
4 nameD 11 test
当我使用 SELECT * FROM tableA FULL OUTER JOIN tableB ON tableA.id = tableB.id
时,我得到
id name age id name age address
1 nameA 10
2 nameB 11
3 nameC 10 test
4 nameD 11 test
有没有办法正确合并数据?
像这样:
id name age address
1 nameA 10
2 nameB 11
3 nameC 10 test
4 nameD 11 test
这些表与您尝试加入它们的列 id
无关,因此您需要 UNION ALL
:
SELECT *, null address FROM tableA
UNION ALL
SELECT * FROM tableB
由于 tableA
只有 3 列,因此向其中添加了第 4 个虚拟 null
列以匹配 tableB
的列数。