首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oracle查询到mysql的左连接

oracle查询到mysql的左连接
EN

Stack Overflow用户
提问于 2011-12-10 11:38:34
回答 4查看 422关注 0票数 10

我将公司的oracle数据库迁移到mysql (是的,不要问我为什么),很少有查询(用于报告)是巨大的,并且在mysql中工作

其中之一是具有89个内连接的4021行

这为公司客户生成了去年财务状况的详细报告。

我需要这份报告(因为我们很快就要到年底了)2011年的工作,我在许多网站上看到mysql的最大左连接是60左右的左连接。

我是不是搞砸了这份报告?还是有办法让我运行它?

EN

回答 4

Stack Overflow用户

发布于 2012-01-15 17:43:21

我认为您的报表查询无论如何都会导致EXPLAIN中的using temporary。您可以在一个事务中将单个查询分解为多个查询,并显式地创建临时表。

如果您的Oracle查询包含像这样的命名子查询(我指的是来自T- WITH的SQL子查询,我不知道它们是否存在于Oracle子查询中,但肯定不存在于MySQL中),这可能会更有帮助。

票数 5
EN

Stack Overflow用户

发布于 2011-12-10 11:43:33

你必须跳到编程语言(Ruby,PHP,Python,等等)来解决这个问题,只需使用原生对象,而不是仅仅依赖于巨大的连接,就可以更容易地处理如此多的连接。

你是对的,MySQL中的最大联接数是61 ( http://dev.mysql.com/doc/refman/5.0/en/joins-limits.html )

票数 0
EN

Stack Overflow用户

发布于 2011-12-10 12:15:48

如果是这样的话,您可能希望尝试分解一些查询,并在实际情况下预先查询一些"left join“内容以及其他一些元素。例如,您可以预先查询(并且只是猜测)

以总账科目编码(id列)等分类的存货项目作为一个预查询。

将其与所有订单详细信息连接到订单标题摘要,以获取客户ID并作为另一个预查询连接到客户。确保将任何关键元素加入总体报告要求。

在可能的情况下继续向下列表,你可能会杀死一群人,因为他们将是SUBQueries的结果,没有一个级别会有61个连接在进行。

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

https://stackoverflow.com/questions/8454185

复制
相关文章

相似问题

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