2013-05-19 128 views
-2

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

INSERT表2 SELECT * FROM表1 WHERE table1 .ID = $ ID

+1

快速和脏,添加日期列后续 – 2013-05-19 22:28:56

+1

而不是SELECT *只需选择两列。除非我失踪。 – Steven

+0

它不会让我插入,因为它们没有相同的列号 – user2310422

回答

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 ... 

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

0

听起来好像你正在寻找一个左连接表2S日期到表1只,其中ID匹配...先运行此查询,你应该看到它选择合适的结果,为您设置:

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

,那么你可以在结果集出口或INSERT,请你为Table

0

的新副本,看看在"INSERT INTO",我怀疑你正在寻找这样的事情?

INSERT INTO table2 (id, username) 
SELECT id,username FROM table1