如何将来自不同表的3个字段的值显示为一列?

时间:2018-01-26 16:15:45

标签: php sql

我想组合来自三个具有相同类型结果的不同表的字段。 例如:

表:1

  • 列:a.country_name
  • 可能的价值观:美国,加拿大,德国

表:2

  • 列:b.country_name
  • 可能的价值观:亚美尼亚,波兰,土耳其

表:3

  • 列:c.country_name
  • 可能的价值观:葡萄牙,日本,阿根廷

我在将这些表连接在一起时没有问题(一般的'国家/地区'表格将这三个表格中的每一个与country_id字段相关联)。我遇到的问题是我不知道如何将这些组合成1列。

我试过: COALESCE(a.country_name,b.country_name,c.country_name)

但这并不包括所有可能的值。让我们说a.country_name将返回4个国家的结果集,但是b和c返回2.只有2会显示我希望所有4个国家。

我只想要一个列,它返回所有可能的值(它们都是国家/地区) 如:

国家/地区

  • 美国
  • 加拿大
  • 德国
  • 亚美尼亚
  • 波兰
  • 土耳其
  • 葡萄牙
  • 日本
  • 阿根廷

3 个答案:

答案 0 :(得分:0)

听起来你想要的是UNION:

SELECT a.country_name as country_name
from a
UNION
SELECT b.country_name as country_name
from b
SELECT c.country_name as country_name
from c;

答案 1 :(得分:0)

如果我理解你的问题,我想你想要UNION / UNION ALL。

SELECT country_name FROM a
UNION ALL
SELECT country_name FROM b
UNION ALL
SELECT country_name FROM c

答案 2 :(得分:-1)

我认为您正在寻找GROUP BY 'country_name'More information on W3.