我想将列从table1复制到table2,并在table2中添加一些附加列。
尽管我知道语法:
INSERT INTO table2
SELECT * FROM table1
WHERE condition;
但是如何将其他列的数据添加到table2中?
我已经尝试过这种方法,但是会产生语法错误:
// first storing the desired data from table1 into a temporary table
CREATE TEMPORARY TABLE temp_table
select column1, column2, column3 from table1
where condition;
// then placing the selected columns into table2
INSERT INTO table2 (col1, col2, col3,col4) values (
SELECT column1 FROM temp_table,
SELECT column2 FROM temp_table,
SELECT column3 FROM temp_table,
'Additional Value'
);
您可以将乱抛垃圾的字符串(或任何其他表达式)添加到列列表中。考虑:
INSERT INTO table2 (col1, col2, col3,col4)
SELECT
column1,
column2,
column3,
'Additional Value'
FROM table1
请,按照以下查询,您可以将别名用作额外的列静态或表达式字段:(SQL-Fiddle)
INSERT INTO table2 (col1, col2, col3, col4)
SELECT column1, column2, column3, 'Additional Value' as column4
FROM table1
WHERE condition;