V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zzzain46
V2EX  ›  问与答

MySQL 的 一个疑难问题(with as/insert)

  •  
  •   zzzain46 · 2022-01-13 15:45:37 +08:00 · 768 次点击
    这是一个创建于 1081 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于计算的需要,使用 with as 建立了四个临时表。

    伪代码如下:

    with a as (select...),b as (select...),c as (select...),d as(select...)
    
    insert into d
    select .... 
    from a join b on ...
    join c on ....
    join d on...
    

    执行报错,错误代码 1064 ,说是 insert into 有问题。但是,我先执行以下代码

    with a as (select...),b as (select...),c as (select...),d as(select...)
    
    select .... 
    from a join b on ...
    join c on ....
    join d on...
    

    然后将查询结果复制为 insert 语句( navicat 的功能),再插入表 d ,就可以成功。

    迷惑,求大佬解答。

    3 条回复    2022-01-13 16:39:20 +08:00
    zzzain46
        1
    zzzain46  
    OP
       2022-01-13 15:59:48 +08:00
    第一段 sql 笔误,insert into d 应为 insert into e
    zzzain46
        2
    zzzain46  
    OP
       2022-01-13 16:01:44 +08:00
    由于计算的需要,使用 with as 建立了四个临时表。

    伪代码如下:

    with a as (select...),b as (select...),c as (select...),d as(select...)

    insert into e
    select ....
    from a join b on ...
    join c on ....
    join d on...
    执行报错,错误代码 1064 ,说是 insert into 有问题。但是,我先执行以下代码

    with a as (select...),b as (select...),c as (select...),d as(select...)

    select ....
    from a join b on ...
    join c on ....
    join d on...
    然后将查询结果复制为 insert 语句( navicat 的功能),再插入表 e ,就可以成功。

    迷惑,求大佬解答。
    bluekz
        3
    bluekz  
       2022-01-13 16:39:20 +08:00
    1064 基本就是 sql 写的有问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2654 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:08 · PVG 23:08 · LAX 07:08 · JFK 10:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.