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语句)即可解决问题。