如何连接表a
和表b
并获取每个表的记录?不是真正的加入……不知道这叫什么。
因此,如果我有 3 条记录a
和 5 条记录b
,我想要 8 条记录。
在 的记录中a
,所有b
字段都可以为空。在 的记录中b
,所有a
字段都可以为空。
编辑:我的表有不同的字段。
Error Code: 1222. The used SELECT statements have a different number of columns
如何连接表a
和表b
并获取每个表的记录?不是真正的加入……不知道这叫什么。
因此,如果我有 3 条记录a
和 5 条记录b
,我想要 8 条记录。
在 的记录中a
,所有b
字段都可以为空。在 的记录中b
,所有a
字段都可以为空。
编辑:我的表有不同的字段。
Error Code: 1222. The used SELECT statements have a different number of columns
像其他提到的,你需要一个工会
SELECT intColumn, varcharColumn, intColumn FROM a
UNION
SELECT intColumn, varcharColumn, 0 FROM b
但是您必须具有相同数量的列,并且它们也必须具有相似的数据类型。
这是一个很好的教程
此外,如果您想要不在两个表中的列,您可以填充空值或常量。
你想要一个UNION
:
SELECT something FROM a
UNION
SELECT something FROM b
试试这个
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
在两个表中不相同的字段
编辑:更新的小提琴