我正在尝试使用下面的代码创建表的副本。如果他们都有相同的列,一切都很好。我的table1有2列(id,用户名),而table2有3列(id,用户名,日期)。我的目标是创建table1的一个副本,其中table1
.id = $ id并在其中插入date
。有人可以用这个指导我吗?创建表的副本mysql
INSERT表2 SELECT * FROM表1 WHERE table1
.ID = $ ID
我正在尝试使用下面的代码创建表的副本。如果他们都有相同的列,一切都很好。我的table1有2列(id,用户名),而table2有3列(id,用户名,日期)。我的目标是创建table1的一个副本,其中table1
.id = $ id并在其中插入date
。有人可以用这个指导我吗?创建表的副本mysql
INSERT表2 SELECT * FROM表1 WHERE table1
.ID = $ ID
例
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 ...
,但它会导致一些讨厌的错误。
听起来好像你正在寻找一个左连接表2S日期到表1只,其中ID匹配...先运行此查询,你应该看到它选择合适的结果,为您设置:
SELECT table1.*, table2.date
FROM table1
LEFT JOIN table2
ON table1.id = table2.id
,那么你可以在结果集出口或INSERT,请你为Table
的新副本,看看在"INSERT INTO"
,我怀疑你正在寻找这样的事情?
INSERT INTO table2 (id, username)
SELECT id,username FROM table1
快速和脏,添加日期列后续 – 2013-05-19 22:28:56
而不是SELECT *只需选择两列。除非我失踪。 – Steven
它不会让我插入,因为它们没有相同的列号 – user2310422