我正在使用Access 2000,我有2个查询:
第一个是:
CREATE TABLE first_table_name (....)
第二个是:
INSERT INTO first_table_name [(column1, column2, ... columnN)]
SELECT column1, column2, ...columnN
FROM second_table_name
[WHERE condition];
只用一个查询就可以做同样的事情(创建一个表并立即用另一个表填充它)吗?
谢谢!
答案 0 :(得分:6)
试
SELECT column1, column2, ...columnN
into first_table_name
FROM second_table_name
[WHERE condition];
first_table_name将具有与第二个表名相同的表列
答案 1 :(得分:3)
SELECT column1, column2, ...columnN
INTO new_table
FROM second_table_name
[WHERE condition];
答案 2 :(得分:1)
方法1: INSERT INTO SELECT
INSERT INTO Table1 (col1, col2)
SELECT col1, col2
FROM Table2
方法2: SELECT INTO
SELECT col1, col2
INTO Table1
FROM Table2
注意:表包含相同的架构
答案 3 :(得分:0)
可以在一个表中插入从另一个表中选择的记录,这里是doc。如果您使用的是mysql:mysql insert select
答案 4 :(得分:0)
CREATE TABLE new_table AS SELECT col1, col2, ... FROM second_table_name WHERE ...
答案 5 :(得分:0)
唯一的方法是:
SELECT blah INTO [ #local | ##global ] FROM ... WHERE
但这不是永久性的表格,并且会在......时消失。
如果是#local表,那么当用户断开连接时 if ## global table然后当所有使用它的用户断开连接时
所以不是一个好的解决方案。
你可以编写一个存储过程来执行create + insert,然后只用一个后续语句在很多地方执行它,但这有点作弊。