Объединить таблицы из одной базы данных по идентификатору - PullRequest
0 голосов
/ 04 мая 2020

У меня есть 1 база данных с 3 таблицами, которые содержат различную информацию о той же теме, что и:

table1:

ID  |  name  | address
-------------------------
1   |  Jhon  |  somewhere
2   |  James |  somewhere-else

table2:

ID  |  last_name  | status
-------------------------
1   |  Doe  |  single
2   |  Bond |  married

и Я хочу объединить их в новую таблицу следующим образом:

новая объединенная таблица:

ID  |  name  |      address    | last_name | status
----------------------------------------------------
1   |  Jhon  |     somewhere   |     Doe   |  single
2   |  James |  somewhere-else |     Bond  |  married

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Это должно работать:

ALTER TABLE `table1` ADD COLUMN `last_name` CHAR(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '';
ALTER TABLE `table1` ADD COLUMN `status` CHAR(16) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '';

UPDATE table1 AS a, table2 as b
SET a.last_name = b.last_name
a.status = b.status
WHERE a.ID = b.ID;

DROP `table2`;
0 голосов
/ 04 мая 2020

Использовать базовое c соединение:

SELECT
    t1.ID,
    t1.name,
    t1.address,
    t2.last_name,
    t2.status
FROM table1 t1
LEFT JOIN table2 t2
    ON t1.ID = t2.ID;

Строго говоря, если данный ID может присутствовать в одной, но не в обеих таблицах, то вы можете использовать полную внешнюю Присоединяйтесь, чтобы всегда предоставлять частичную информацию, где это возможно. Если это ваш случай, то здесь можно задать комментарий и другой запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...