ERROR 1105 (HY000): ON condition doesn't support subqueries yet 条件不支持子查询怎么改写

ERROR 1105 (HY000): ON condition doesn’t support subqueries yet on 条件不支持子查询怎么改写

  1. 什么版本?具体 sql 是什么?
  2. 是在使用 DM 或者其他工具同步吗?
  3. sql 有可能改写为 关联查询之类的吗?
  4. 可以考虑分多个sql,在事务中完成

TiDB 中 on 条件确实不支持子查询。
需要提供 sql 进一步看看怎么改写

sql 相关语句

tidb v3.1.0帮忙处理一下

query20200818112600.txt

已收到,文字版和附件一致。

辛苦再提供下脱敏的表结构,

[表结构.txt|

用 view 吧,把这个 sql 拆分一下:

比如:

                                        taskinst t1
										LEFT JOIN taskinst t2 ON t2.id_ = (
										SELECT
											i.id_
										FROM
											taskinst i
										WHERE
											i.PROC_INST_ID_ = t1.PROC_INST_ID_
											AND i.id_ <> t1.id_
											AND i.START_TIME_ <= t1.START_TIME_
											AND i.TASK_DEF_KEY_ NOT IN ( 'noPass' )
										ORDER BY
											i.START_TIME_ DESC
											LIMIT 1
										)

用 view 创建为:

create view v1 as 
     select (SELECT i.id_ FROM taskinst i 
         WHERE 
               i.PROC_INST_ID_ = t1.PROC_INST_ID_
               AND i.id_ <> t1.id_
               AND i.START_TIME_ <= t1.START_TIME_
               AND i.TASK_DEF_KEY_ NOT IN ( 'noPass' )
               ORDER BY
               i.START_TIME_ DESC
               LIMIT 1), * from taskinst t1;

下面的 join 同理用上面的 view 再创建 view。最后查询结果。

我试试啊

好的,有问题再反馈