最近、データベースを MySQL 4 から MySQL 5 にアップグレードしました。次のクエリは壊れています。
SELECT COUNT(*) FROM Customer, Product INNER JOIN Orders
ON (Customer.Email = Orders.Email)
WHERE NOT (Product.Flags & 8) AND
Customer.CustomerNumber = Product.CustomerNumber AND
Truncate(Orders.ProductId/10, 0) = Truncate(Product.ProductId/10, 0)
次のエラーが発生します。
#1054 - Unknown column 'Customer.Email' in 'on clause'
私はこのクエリを書いていませんし、SQL の達人でもありませんが、ANSI-89/ANSI-92 スタイルの結合が混在している可能性があり、何らかの優先順位の問題が発生している可能性があると推測しています。
このクエリの問題点と、結合を正しく指定する方法を説明して、エラーを説明できますか?