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

Php 如何在mysql中将3个表合并为一个表?,php,mysql,join,Php,Mysql,Join,我有三张桌子: 1.1公司总经理 id com_name unique_id 1 stackoverflow ABCD 2 google EFGH 2.内部员工/主管 id employee_name unique_id 1 Noah ABCD 2

我有三张桌子:

1.1公司总经理

  id            com_name        unique_id
   1           stackoverflow      ABCD
   2           google             EFGH
2.内部员工/主管

  id          employee_name        unique_id
   1           Noah                    ABCD
   2           Liam                    ABCD
   3           William                 ABCD
   4           Benjamin                ABCD
   5           Jacob                   EFGH
  id    employee_name     unique_id
   1    Elijah             ABCD
   2    Ethan              ABCD
   3    Alexander          EFGH
3.外部员工/主管

  id          employee_name        unique_id
   1           Noah                    ABCD
   2           Liam                    ABCD
   3           William                 ABCD
   4           Benjamin                ABCD
   5           Jacob                   EFGH
  id    employee_name     unique_id
   1    Elijah             ABCD
   2    Ethan              ABCD
   3    Alexander          EFGH
我有一个包含所有公司和onchange事件的动态选择框 我希望特定员工的所有内部和外部员工都排在一行。 例如

如果用户将从选择框中选择stackoverflow,则用户将从
内部员工\u master
外部员工\u master
获取所有数据:

  id          employee_name        unique_id
   1           Noah                    ABCD
   2           Liam                    ABCD
   3           William                 ABCD
   4           Benjamin                ABCD
   1           Elijah                  ABCD
   2           Ethan                   ABCD
如何创建查询以获取上述数据。然后如何插入此数据 一个表中的数据,标识谁是
内部员工
或 谁是外部员工。我总共只有一列
unique\u id
3张桌子

您可以使用返回两个表的组合结果

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'
您可以使用返回两个表的组合结果

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'

您可以使用
联合子句

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语句的结果,而不返回任何重复的行。

您可以使用
UNION子句

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语句的结果,而不返回任何重复的行。

您可以使用MySQL UNION获得所需的输出您可以使用MySQL UNION获得所需的输出用于回复。除了在表中添加一列以添加标志外,查询中还有其他方法吗标识内部或外部..刚刚添加:)感谢您的回复。除了在表中添加一列以添加标志外,查询中是否有其他方法标识内部或外部..刚刚添加:)