-2

我正在尝试使用下面的代码创建表的副本。如果他们都有相同的列,那么一切都很好。我的 table1 有 2 列(id、用户名),而 table2 有 3 列(id、用户名、日期)。我的目标是创建 table1 WHERE table1.id = $id 的副本并在其中插入dateon 。有人可以指导我吗?

INSERT table2 SELECT * FROM table1 WHERE table1.id = $id

4

3 回答 3

0

看看"INSERT INTO",我怀疑你正在寻找这样的东西?

INSERT INTO table2 (id, username)
SELECT id,username FROM table1
于 2013-05-19T23:14:59.460 回答
0

在我看来,您正在寻找仅在 id 匹配的情况下将表 2 的日期左连接到表 1...首先运行此查询,您应该会看到它为您选择了适当的结果集:

SELECT table1.*, table2.date
FROM table1
LEFT JOIN table2
ON table1.id = table2.id

然后您可以根据需要导出或插入该结果集作为 table1 的新副本

于 2013-05-19T23:06:08.497 回答
0

例子

Table1 is ID,Name,DateAdded
Table2 is Name,ID,DateOriginallyAdded,SomeOtherColumn

查询会说

Insert Table2(Name,ID,DateOriginallyAdded) Select Name,ID,DateAdded From Table1 Where ...

指定两组列,你可以逃脱

Insert Table2 Select Name,ID,DateAdded,Null From Table1 Where ...

或者

Insert Table2(ID,Name,DateOriginallyAdded) Select * From Table1 Where ...

但它可能会导致一些讨厌的错误。

于 2013-05-19T23:03:42.693 回答