复制同一表格中的第1行,然后将其插入已编辑的列,如下所示。
Table 1 (ID is auto increment)
ID | CL1 | CL2 | CL3
1 | A | text1 | NULL
2 | B | text2 | NULL
Table 2
ID | CL3
21 | 45
24 | 63
Converted Table 1
ID | CL1 | CL2 | CL3
1 | A | text1 | NULL
2 | B | text2 | NULL
3 | A | text1 | 45
4 | B | text2 | 63
我知道如何复制和插入一列重复的所有行,但更改一些具有不同值的列是问题。
以下是复制1列的所有字段的查询更改:
INSERT INTO table1 (col1, col2, col3)
SELECT col1, col2, 1
FROM table1 LIMIT 2;
非常感谢任何帮助。
ex:所以现在我们有table2,其中包含table1 CL3的值。现在我们可以从另一个表中获取数据并在复制时插入它们吗?
答案 0 :(得分:0)
假设您希望1个表中的前2个记录使用来自另一个表的前2行的值进行更新,那么我认为您需要为每个表添加序列号并基于此加入。
如下所示,但它不会很快!
INSERT INTO table1 (ID, CL1, CL2, CL3)
SELECT NULL, a.CL1, a.CL2, b.CL3
FROM
(
SELECT CL1, CL2, @cnt1:=@cnt1 + 1 AS cnt
FROM table1
CROSS JOIN (SELECT @cnt1:=0) sub0
ORDER BY ID
LIMIT 2
) a
INNER JOIN
(
SELECT CL3, @cnt2:=@cnt2 + 1 AS cnt
FROM table2
CROSS JOIN (SELECT @cnt2:=0) sub0
ORDER BY ID
LIMIT 2
) b
ON a.cnt = b.cnt