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 (将#修改为@)