以下查询适用于MySQL(Ver.4.1.22)但相同的查询在较新版本(5.5.56-MariaDB)中出错。任何人都可以帮助我。
SELECT
c3.label_id
FROM
label_based_costs c3, label_based_text s3, platform o3, basic b3,
series r3
LEFT JOIN platform o2 ON o3.content_code = o2.content_code AND o2.year = '2018'
LEFT JOIN basic b2 ON b3.bs_code = b2.bs_code AND b2.year = '2018'
错误讯息:
Error in query (1054): Unknown column 'o3.content_code ' in 'on clause'
答案 0 :(得分:1)
这是因为你正在混合EXPLICIT and IMPLICIT join Syntax。
不推荐使用隐式连接语法,您应该停止使用它。
在同一个查询中混合使用这两种语法甚至是最差的,并且在最近的MySQL版本中会导致类似的错误(现在版本4已经很老了......)。
您的查询应该是
SELECT
c3.label_id
FROM
label_based_costs c3
CROSS JOIN label_based_text s3
CROSS JOIN platform o3
CROSS JOIN basic b3
CROSS JOIN series r3
LEFT JOIN platform o2 ON o3.content_code = o2.content_code AND o2.year = '2018'
LEFT JOIN basic b2 ON b3.bs_code = b2.bs_code AND b2.year = '2018'
在旁注中,所有这些CROSS JOIN都是可疑的,因为您在5个表之间创建了一个巨大的笛卡尔积,并且可能需要进行审核