首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql4 -> mysql5:在一个查询中左联接和隐式联接不再工作了

mysql4 -> mysql5:在一个查询中左联接和隐式联接不再工作了
EN

Stack Overflow用户
提问于 2011-12-23 17:25:26
回答 1查看 405关注 0票数 0

将mysql从4.1升级到5.6 (没有问题)之后,执行查询时会出现问题:

代码语言:javascript
复制
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服务器解决方案。

谢谢你的暗示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-23 18:11:39

查询中没有“自然连接”。

你在混合显式连接(加入.和隐式联接(其中anothertable.id=table1.id)在同一个查询中,这是一个非常坏的习惯。

您应该(而且显然必须)重写查询,以便只使用显式联接。

您应该重新考虑不允许重写查询的“几个原因”。保持查询的原样确实是个坏主意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8618900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档