使用INSERT....SELECT语句将数据从一个表复制到另一个表。
例如:
INSERT INTO nobe(yea,subje,winne)
SELECT nobel.yr,nobel.subject,nobel.winner
FROM nobel
WHERE nobel.yr='2009'
以上代码就是将nobel表中yr为2009的数据复制到nobe表中。
不过INSERT....SELECT还有其他用途。例如,作为替代VALUES选项的一条途径,可以使用这条语句插入一行数据。在MySQL和SQL Server中,可以省略FROM子句来得到单行的结果。下面的两条语句等价:(来自《SQL HACKS》)
INSERT INTO roomBooking(whn,wht,who)
VALUES('2006-07-13','Ballroom','Col.Mustard');
INSERT INTO roomBooking(whn,wht,who)
SELECT '2006-07-13','Ballroom','Col.Mustart';
但是我不明白,这两种写法在效率上会有什么区别?