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