0

如何连接表a和表b并获取每个表的记录?不是真正的加入……不知道这叫什么。

因此,如果我有 3 条记录a和 5 条记录b,我想要 8 条记录。

在 的记录中a,所有b字段都可以为空。在 的记录中b,所有a字段都可以为空。


编辑:我的表有不同的字段。

Error Code: 1222. The used SELECT statements have a different number of columns
4

3 回答 3

2

像其他提到的,你需要一个工会

SELECT intColumn, varcharColumn, intColumn FROM a
UNION
SELECT intColumn, varcharColumn, 0 FROM b

但是您必须具有相同数量的列,并且它们也必须具有相似的数据类型。

这是一个很好的教程

此外,如果您想要不在两个表中的列,您可以填充空值或常量。

于 2012-10-12T18:45:29.980 回答
1

你想要一个UNION

SELECT something FROM a
UNION
SELECT something FROM b
于 2012-10-12T18:35:08.047 回答
1

试试这个

SELECT * FROM a
LEFT JOIN b ON a.id1 = b.id2
UNION
SELECT * FROM a
RIGHT JOIN b ON a.id1 = b.id2

只需确保 A 和 B 具有不同的 ID

编辑:工作小提琴

您还可以使用其他一些id在两个表中不相同的字段

编辑:更新的小提琴

于 2012-10-12T18:39:19.347 回答