如何在MySQL中组合两个表保留所有列?

时间:2015-03-28 16:21:43

标签: mysql

我有两张完全不同结构的桌子。我想查询MYSQL以在单个查询中获取两个表中的所有列。

例如,如果我有一个Person表和一个Animal表,我希望我的查询返回:

person_name|person_age|animal_type|animal_name
______________________________________________
Ryan       |31        |NULL        |NULL
Fred       |23        |NULL        |NULL
NULL       |NULL      |Cat         |Whiskers
NULL       |NULL      |Dog         |Wishbone

我只有MYSQL的基本知识,我无法理解我正在阅读的大部分资料和谷歌搜索,而且它似乎与我想要的完全不符。

谢谢!

1 个答案:

答案 0 :(得分:3)

您想要一个连接两个结果集的UNION ALL查询

SELECT person_name, person_age,
       NULL animal_type, NULL animal_name
  FROM person
 UNION ALL 
SELECT NULL person_name, NULL person_age,
       animal_type, animal_name
  FROM animal

每个SELECT查询以类似的方式对其结果集进行整形,然后UNION ALL将它们组合在一起。