SELECT * INTO与子查询

时间:2018-07-25 10:08:25

标签: mysql

我是MySQL的新手,我正在尝试使用select * into创建表。我的问题是我正在使用子查询,但我不了解该查询的正确正弦值。 Morover,通过此查询,我将显示我要复制的所有记录:

    select trasco_titolarita.* 
    from trasco_titolarita
    inner join (
                select max(id) as maxID, soggetto_id 
                from trasco_titolarita group by soggetto_id
               ) maxID
    on maxID.maxID = trasco_titolarita.id

如上所述,此查询显示我感兴趣的所有记录。我要实现的目标是将所有这些记录复制到另一个新表中,因此我正在尝试以下操作:

select * into newtable from
(
select trasco_titolarita.* 
from trasco_titolarita
    inner join (
                select max(id) as maxID, soggetto_id 
                from trasco_titolarita group by soggetto_id
               ) maxID
    on maxID.maxID = trasco_titolarita.id

)

但这实际上是行不通的,原因是我认为子查询中的第一个选择只是一个显示。我得到的错误是“')'附近的语法不正确” 有人可以给我一些提示吗?

2 个答案:

答案 0 :(得分:0)

我非常确定MySQL Server不支持SELECT ... INTO语法

您可以改用CREATE TABLE new_tbl SELECT * FROM orig_tbl WHERE ....语法

有关更多信息,请阅读 https://dev.mysql.com/doc/refman/8.0/en/ansi-diff-select-into-table.html

答案 1 :(得分:0)

您需要将select * into更改为insert intohttps://dev.mysql.com/doc/refman/8.0/en/insert-select.html

假设newtable与现有trasco_titolarita具有相似的列。 适用于您的查询是::

insert into newtable
select trasco_titolarita.* 
from trasco_titolarita
    inner join (
                select max(id) as maxID, soggetto_id 
                from trasco_titolarita group by soggetto_id
               ) maxID
    on maxID.maxID = trasco_titolarita.id