我有一个包含3个表的数据库,这些表包含有关同一主题的不同信息:
表1:
ID | name | address
-------------------------
1 | Jhon | somewhere
2 | James | somewhere-else
表2:
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
答案 0 :(得分:1)
使用基本联接:
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
可以存在于一个表中,但不能同时存在于两个表中,那么您可能希望使用完整的外部联接,以尽可能地始终显示部分信息。如果是这种情况,则可以在此处给出评论和不同的查询。
答案 1 :(得分:0)
这应该有效:
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`;