首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL连接表的最大数量限制是否适用于整个查询,或者子查询是单独计算的吗?

问SQL连接表的最大数量限制是否适用于整个查询,或者子查询是单独计算的吗?
EN

Stack Overflow用户
提问于 2012-08-14 22:03:05
回答 2查看 5.5K关注 0票数 7

我已经读到了MySQL 5中的61 table join limit,但我不确定它将如何应用于以下内容:

代码语言:javascript
复制
SELECT * FROM (

    SELECT * FROM tableA JOIN // Lots of other joins here...

    UNION

    SELECT * FROM tableB JOIN // Lots of other joins here...

    UNION

    SELECT * FROM tableC JOIN // Lots of other joins here...

    // etc...
)

我是否会在所有子查询中达到总共61个表的限制,或者每个UNIONed子查询将达到61个表?

这在不同的数据库中是否有所不同,例如PostgreSQL、MSSQL、Oracle?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-22 07:59:37

每个子查询似乎有61个。这里有一个小提琴演示了这一点。

http://sqlfiddle.com/#!2/2b219/5

我有一个简单的表,只有一行:

代码语言:javascript
复制
id    | value
1     | testvalue

第一个查询就是表。

第二个查询将表与自身联接61次。它工作得很好。

第三个查询有一个包含61个联接的子查询,该子查询本身再次与表联接。它工作得很好。

第四个查询将表联接62次。它失败了。

票数 3
EN

Stack Overflow用户

发布于 2012-08-23 06:02:39

是的,它适用于整个查询。我遇到过这样的情况。在SQL 2005中,该限制为256。我们刚刚升级到2008年,我不确定是否有限制。在这里查看官方限制:http://msdn.microsoft.com/en-us/library/ms143432.aspx然而,最好的做法是要么将查询一分为二,要么改变它的编写方式。

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

https://stackoverflow.com/questions/11953995

复制
相关文章

相似问题

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