SELECT * INTO <不存在的表>-MYSQL [重复]

Posted

技术标签:

【中文标题】SELECT * INTO <不存在的表>-MYSQL [重复]【英文标题】:SELECT * INTO <non existent table>- MYSQL [duplicate] 【发布时间】:2018-05-13 00:05:54 【问题描述】:

我正在尝试将 select 语句的结果移动到一个新的不存在的表中,但不知道如何操作。

在 MS SQL 中,我将遵循以下内容,

SELECT * INTO <NON_EXISTING_TABLE> FROM
(
SELECT * FROM TABLE1 A 
JOIN TABLE2 B
ON A.DescriptionNo = B.DescriptionNo 
WHERE A.DescriptionNo =1) A

当我快速查找时,我只能看到将数据插入现有表的答案,但不能使用语句结果动态创建新表。

请指教!

【问题讨论】:

我猜你在找Create a temporary table in a SELECT statement without a separate CREATE TABLE ***.com/questions/16809393/select-into-in-mysql 对不起,我的错。答案就在那里,我错过了。不过感谢您的回复! 【参考方案1】:

如果你想从一个选择中创建一个新表,你可以使用这个语法:

create table new_table as
select *
from existing_table
where ...

【讨论】:

不知道谁投了反对票,但根据欺骗问题,这是正确的解决方案【参考方案2】:

上面显示的此解决方案也适用于选定的行。例如,我正在为我的 nice2work 项目创建演示行,这很完美。

CREATE TEMPORARY TABLE tmptable SELECT * FROM myTable WHERE id=500;
UPDATE tmptable SET id = 0;
UPDATE some fields I need to change
INSERT INTO myTable SELECT * FROM tmptable;
DROP TABLE tmptable;

//  You can use this same also directly into your code like (php Style)
$sql = "CREATE TEMPORARY TABLE tmptable SELECT * FROM myTable WHERE id=500;
UPDATE tmptable SET id = 0;
UPDATE some fields I need to change
INSERT INTO myTable SELECT * FROM tmptable;DROP TABLE tmptable;";

【讨论】:

以上是关于SELECT * INTO <不存在的表>-MYSQL [重复]的主要内容,如果未能解决你的问题,请参考以下文章

INSERT INTO SELECT 语句

[22]SQL INSERT INTO SELECT 语句

insert into select 时,能跳过存在的记录吗

insert into select

VS 2010 数据库项目和由“select into”创建的表

Select into 与 Insert into … select … from