微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

with子查询

如何解决with子查询

我有一个MariaDB数据库。我正在运行With查询

当我运行以下查询时,它给我一个错误提示t1表不存在

with t1 as (select 't1'),block1 as (

   with inner1 as (
     select * from t1
   )

   select * from inner1
   
),block2 as (
  
  with b2inner1 as(
    select * from block1
  ),b2inner2 as(
    select * from block1
  )
  
  select * from b2inner2

)
select * from block2;

但是,如果我删除了block2,则查询有效。

with t1 as (select 't1'),block1 as (

   with inner1 as (
     select * from t1
   )

   select * from inner1
   
)

select * from block1;

我的问题是我没有在block2子查询中使用t1,为什么查询给出了错误信息。

我认为发生错误是因为我在block2查询中两次选择了block1的结果。 dbfiddle

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。