Как объединить 3 таблицы в одну таблицу в MySQL? - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть 3 таблицы:

1.company_master

  id            com_name        unique_id
   1           stackoverflow      ABCD
   2           google             EFGH

2.internal_employee_master

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

3.external_employee_master

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

У меня есть один динамический блок выбора со всеми компаниями и событиями onchange, я хочу, чтобы все внутренние и внешние сотрудники отдельных сотрудников были в одном ряду.например,

, если пользователь выберет stackoverflow из поля выбора, пользователь получит все данные из 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 во всех трех таблицах.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Вы можете использовать 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 без возврата повторяющихся строк.

0 голосов
/ 16 февраля 2019

Вы можете использовать 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...