MySQL Error number: 3668; Symbol: ER_TF_FORBIDDEN_JOIN_TYPE; SQLSTATE: HY000 报错 故障修复 远程处理


文档解释

Error number: 3668; Symbol: ER_TF_FORBIDDEN_JOIN_TYPE; SQLSTATE: HY000

Message: INNER or LEFT JOIN must be used for LATERAL references made by ‘%s’

错误说明:

ER_TF_FORBIDDEN_JOIN_TYPE 错误表示MySQL识别的语句中包含不允许的JOIN类型。这是一个安全保护,勉强处理此类JOIN可能会让MySQL系统处于不稳定的状态中。

常见案例

常见出现这个错误的案例有:在MySQL查询中包含CROSS JOIN或者STRAIGHT_JOIN等JOIN类型时都有可能引发这个错误。

解决方法:

通常来说,对于ER_TF_FORBIDDEN_JOIN_TYPE错误,只要把JOIN语句中的CROSS JOIN或者STRAIGHT_JOIN关键字替换成条件式的JOIN如INNER JOIN,或把JOIN子句分解成多个JOIN子句(如把多个复杂的JOIN语句拆分成多个简单的join语句)即可解决问题。