ERROR 1105 (HY000): ON condition doesn’t support subqueries yet on 条件不支持子查询怎么改写
- 什么版本?具体 sql 是什么?
- 是在使用 DM 或者其他工具同步吗?
- sql 有可能改写为 关联查询之类的吗?
- 可以考虑分多个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。最后查询结果。
我试试啊
好的,有问题再反馈