将mysql从4.1升级到5.6 (没有问题)之后,执行查询时会出现问题:
SELECT *
FROM table1, anothertable
LEFT JOIN thirdtable ON table1.id=thirdtable.id
AND thirdtable.town=anothertable.town
WHERE table1.id=8 and anothertable.id=table1.id;在错误消息中结束:
“on子句”中的
未知列'table1.id‘
同样的查询在4.11上非常有效。-有什么提示要怎么做,才能使查询再次正常工作?问题是:有很多查询需要重写--而且它们比示例更复杂(该示例被简化为问题)。所以最好能找到mysql服务器解决方案。
谢谢你的暗示。
发布于 2011-12-23 18:11:39
查询中没有“自然连接”。
你在混合显式连接(加入.和隐式联接(其中anothertable.id=table1.id)在同一个查询中,这是一个非常坏的习惯。
您应该(而且显然必须)重写查询,以便只使用显式联接。
您应该重新考虑不允许重写查询的“几个原因”。保持查询的原样确实是个坏主意。
https://stackoverflow.com/questions/8618900
复制相似问题