我有两张桌子,需要将一张桌子复制到另一张INSERT INTO tbl_new SELECT FROM tbl_old
他们都有3个完全相同的列,但是tbl_new有第4列,名为" type"我如何在同一个查询中填充它。
我需要从tbl_old复制行并将值赋给单元格"输入"
INSERT INTO tbl_new SELECT FROM tbl_old, (type) values (floor(rand() * 10))
不起作用
答案 0 :(得分:1)
说tbl_old
有两列,tbl_new
有三列
tbl_old
colA | colB
tbl_new
colA | colB | colC
假设您要使用colA和colB值的总和填充colC。你可以用这个:
INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,(colA+colB) FROM tbl_old;
在你的例子中:
INSERT INTO tbl_new (colA, colB, colC) SELECT colA,colB,floor(rand()*10) FROM tbl_old;
答案 1 :(得分:1)
尝试以下:
INSERT INTO tbl_new (column1,column2,column3,type)
SELECT column1,column2,column3,floor(rand() * 10) FROM tbl_old
注意:将column1,column1.column3替换为列名。
答案 2 :(得分:0)
上面的这些答案是正确的,但想象一下,如果除了额外的列之外一切都是相同的,那么写出列的时间就会花费。
如果表格的顺序与末尾的附加列相同,那么这是一个更简洁的查询:
INSERT INTO tbl_new SELECT *, floor(rand()*10) FROM tbl_old;