【问题标题】:How to display values from 3 fields from different tables into one column?如何将来自不同表的 3 个字段的值显示在一列中?
【发布时间】:2018-01-26 16:15:45
【问题描述】:

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

表格: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。当我想要所有 4 个国家/地区时,只有 2 会显示。

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

国家

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

【问题讨论】:

    标签: php sql


    【解决方案1】:

    听起来你想要的是 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;
    

    【讨论】:

      【解决方案2】:

      如果我正确理解您的问题,我认为您想要 UNION / UNION ALL。

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 那很好,但问题是 country_name 不明确,因为它是三个表的相同字段名称。
        • 只是一个问题。为什么要对相同的数据使用 3 个表?
        • 好吧,我有点含糊其辞,因为它是工作中的一件事,但是有三个不同的表有一堆特定于它们的其他字段,但是 country_id 对它们每个都是通用的,还有一个包含更多信息的通用“国家/地区”表。我正在尝试编写一份报告,计算这 3 个单独表格中的每一个在给定时间内在该国家/地区的人数。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多