代码之家  ›  专栏  ›  技术社区  ›  amit sutar

如何在mysql中将3个表合并为一个表?

  •  0
  • amit sutar  · 技术社区  · 6 年前

    我有三张桌子:

    1.1公司主

      id            com_name        unique_id
       1           stackoverflow      ABCD
       2           google             EFGH
    

      id          employee_name        unique_id
       1           Noah                    ABCD
       2           Liam                    ABCD
       3           William                 ABCD
       4           Benjamin                ABCD
       5           Jacob                   EFGH
    

    3.外部员工

      id    employee_name     unique_id
       1    Elijah             ABCD
       2    Ethan              ABCD
       3    Alexander          EFGH
    

    例如

    从选择框中,用户将从中获取所有数据 internal_employee_master external_employee_master :

      id          employee_name        unique_id
       1           Noah                    ABCD
       2           Liam                    ABCD
       3           William                 ABCD
       4           Benjamin                ABCD
       1           Elijah                  ABCD
       2           Ethan                   ABCD
    

    如何创建查询以获取以上信息数据。和那你怎么插这个 internal_employee 是谁 external_employee . 我只有一列 unique_id 总共 3张桌子。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Nigel Ren    6 年前

    你可以用 UNION 要返回两个表的合并结果。。。

    select id, employee_name, unique_id
        from internal_employee_master
        where unique_id = 'ABCD'
    union
    select id, employee_name, unique_id
        from external_employee_master
        where unique_id = 'ABCD'
    

    尽管您可以更好地将这两个表组合起来,只需使用一些标志来指示哪些是内部员工,哪些是外部员工。

    select id, employee_name, unique_id, "Internal" as typeOfEmployee
        from internal_employee_master
        where unique_id = 'ABCD'
    union
    select id, employee_name, unique_id, "External" as typeOfEmployee
        from external_employee_master
        where unique_id = 'ABCD'
    
        2
  •  0
  •   Ropali Munshi    6 年前

    UNION CLAUSE .

    SELECT employee_name, unique_id FROM internal_employee_master WHERE unique_id = 'ABCD'
    
    UNION
    
    SELECT employee_name, unique_id FROM external_employee_master WHERE unique_id = 'ABCD'
    

    SQL UNION子句/运算符用于组合两个或多个SELECT语句的结果,而不返回任何重复的行。