我想合并两个表,保留两个表中的所有行,就像同时进行左连接和右连接一样。
参见下面的示例。两个表都有“水果”列,我想列出两个表中水果的数量。同样,一种特定的水果可能出现在一张桌子上,而不是另一张桌子上。
有人能帮忙吗?谢谢。
TABLE1 TABLE2
fruit, number fruit, number
------------- -------------
apples, 1 apples, 10
pears, 2 oranges, 30
MERGED TABLE (this is the result I'm after:
fruit, number_table1, number_table2
--------------------------------------
apples, 1, 10
pears, 2, -
oranges, -, 30
下面是创建表的代码,如果您需要尝试的话。。。。
CREATE TABLE table1 (fruit CHAR(10) NOT NULL, number INT(10) NOT NULL);
CREATE TABLE table2 (fruit CHAR(10) NOT NULL, number INT(10) NOT NULL);
insert into table1 (fruit, number) values ('apples', 1), ('pears', 2);
insert into table2 (fruit, number) values ('apples', 10), ('oranges', 30);
最佳答案
以下是使用UNION的解决方案:
(select table1.fruit fruit, table1.number number1, table2.number number2 from table1 left join table2 using (fruit)) union (select table2.fruit fruit, table1.number number1, table2.number number2 from table2 left join table1 using (fruit));
关于mysql - MySQL-合并2个保留所有行的表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4962537/