【发布时间】:2014-11-11 16:02:27
【问题描述】:
我有:
表1:
标识 |姓名
表2:
标识 |金额
我想根据公共 ID 创建一个新表。因此,如果 table1 和 table2 中的记录具有匹配的 id,则:
表3
标识 |姓名 |金额
对不起,如果以前有人问过这个问题。我是新手,只想完成这项工作
【问题讨论】:
我有:
表1:
标识 |姓名
表2:
标识 |金额
我想根据公共 ID 创建一个新表。因此,如果 table1 和 table2 中的记录具有匹配的 id,则:
表3
标识 |姓名 |金额
对不起,如果以前有人问过这个问题。我是新手,只想完成这项工作
【问题讨论】:
您为什么不用简单的 select 语句来做到这一点?
选择 a.id、a.Name、b.Amount
FROM table1 a, table2 b
WHERE a.id = b.id
【讨论】:
尝试使用 JOIN
SELECT table1.id, table1.name, table2.amount
FROM table1
LEFT JOIN table2
ON table1.id=table2.id;
我没有对此进行测试,但我认为它应该可以工作。
【讨论】:
像这样:
CREATE TABLE tavle_xxx(
id xxx,
name xxx,
amount xxx
);
INSERT IGNORE INTO tavle_xxx
SELECT t1.id, t1.name, t2.Amount
FROM table1 t1, table2 t2
WHERE t1.id=t2.id;
【讨论】:
更新:
我想根据公共列“id”合并表,而不是创建第三个表。只需添加“名称列”并将其填充到 id 所在的位置 =
所以我有:
表1:
Id | Name
表2:
Id | Amount
我希望结果是
表2
标识 |金额 |名称
【讨论】:
如果要合并table2中table1的Name列,使用公共列Id,可以通过运行:
ALTER TABLE table1 ADD Name <dataTypeOfName>;
UPDATE table1, table2 SET table2.Name = table1.Name WHERE table1.Id = table2.Id;
这将在 table2 中创建一个名为 Name 的新列,然后在基于列 Id 执行连接之后使用 table1 中的值填充它。
【讨论】: