V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zzzain46
V2EX  ›  问与答

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

  •  
  •   zzzain46 · Jan 13, 2022 · 1044 views
    This topic created in 1575 days ago, the information mentioned may be changed or developed.

    由于计算的需要,使用 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 replies    2022-01-13 16:39:20 +08:00
    zzzain46
        1
    zzzain46  
    OP
       Jan 13, 2022
    第一段 sql 笔误,insert into d 应为 insert into e
    zzzain46
        2
    zzzain46  
    OP
       Jan 13, 2022
    由于计算的需要,使用 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  
       Jan 13, 2022
    1064 基本就是 sql 写的有问题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   972 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:13 · PVG 03:13 · LAX 12:13 · JFK 15:13
    ♥ Do have faith in what you're doing.