使用子查询选择*into

trnvg8h3  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(306)

这个问题在这里已经有答案了

mysql::插入到表中,数据来自另一个表(5个答案)
两年前关门了。
我是mysql的新手,我正在尝试使用select*into创建一个表。我的问题是,我使用的是子查询,而我不了解该查询的正确sintax。另外,通过这个查询,我将显示我要复制的所有记录:

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

)

但这实际上不起作用,因为我认为子查询中的第一个select只是一个显示。我得到的错误是“附近语法不正确')'”有人能给我一些提示吗?

9jyewag0

9jyewag01#

我很确定mysql服务器不支持select。。。转换为语法
您可以改为使用create table new\u tbl select*from orig\u tbl where。。。。语法
欲了解更多信息,请阅读https://dev.mysql.com/doc/refman/8.0/en/ansi-diff-select-into-table.html

gab6jxml

gab6jxml2#

你需要改变 select * intoinsert into . https://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

相关问题