我正在尝试使用下面的代码创建表的副本。如果他们都有相同的列,一切都很好。我的table1有2列(id,用户名),而table2有3列(id,username,date)。我的目标是创建table1 WHERE table1
的副本.id = $ id并在其中插入date
。有人能引导我吗?
INSERT table2 SELECT * FROM table1 WHERE table1
。id = $ id
答案 0 :(得分: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 ...
但它可能导致一些令人讨厌的错误。
答案 1 :(得分:0)
听起来像你正在寻找表2的左联接日期到表1只有ids匹配...首先运行此查询,你应该看到它为你选择合适的结果集:
SELECT table1.*, table2.date
FROM table1
LEFT JOIN table2
ON table1.id = table2.id
然后您可以根据需要导出或插入该结果集作为table1的新副本
答案 2 :(得分:0)
看看"INSERT INTO"
,我怀疑你在找这样的东西?
INSERT INTO table2 (id, username)
SELECT id,username FROM table1