加入两个不同的表?

时间:2012-10-12 18:34:07

标签: mysql

如何加入表a和表b并获取每个表的记录?不是真正的加入...不确定这是什么。

因此,如果a中有3条记录,b中有5条记录,那么我需要8条记录。

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


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

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

3 个答案:

答案 0 :(得分:2)

与提到的其他人一样,你需要一个工会

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

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

Here's关于它的好教程

此外,如果您希望列不在两个表中,则可以填充空值或常量。

答案 1 :(得分:1)

您需要UNION

SELECT something FROM a
UNION
SELECT something FROM b

答案 2 :(得分: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

修改:Working Fiddle

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

编辑:更新小提琴