这个示例查询有什么问题?

时间:2010-07-05 16:19:26

标签: sql sql-server-2005

SELECT table0.person_name, table5.animal_name 
FROM table1 
JOIN table0 ON table1.person_id = table0.person_id
JOIN table5 ON table1.animal_id = table5.animal_id
WHERE table1.aa = input1 
  AND table1.bb = input2 
  AND table1.cc = input3 
  AND table1.dd = input4
一位回答者说

如果你甚至接近,你做错了:) - Jamiec 1小时前

它有什么不对吗?

加入=内部加入其他什么?

1 个答案:

答案 0 :(得分:0)

If you ever even get close, you're doing it wrong :)评论直接回答了问题:What is the maximum number of inner joins can a SQL query have?

实际上,所有(大多数)DBMS(包括SQL Server)的连接数都有限制,但这不是一个实际限制,即如果你接近它,你的数据库/查询结构可能需要修改。
修改:似乎在SQL2008中,此限制已被删除(或者更确切地说是“推送”到“仅受可用资源限制”)。在SQL2000中,限制为256,参见以下Microsoft文档页面中的"Tables per SELECT statement"(我认为这是相关的限制因素之一)

我没有找到-nor认真寻找 - SQL 2005文档。另请注意,SQL 2000限制256可能会通过引入视图进行人为提升(人们希望超越一个简单的怪物250+表查询;-))

在这个问题中显示的查询在语法和语义上是非常合适的,并且可能是有效的并且提供期望的结果;这当然取决于具体意图和可用的特定索引(如果表格“大”)。

[Stackoverflow] 程序问题:通常你应该尝试在最初的帖子中解决这类后续问题(除非新问题有效地讨论了其他概念或问题,相当独立于原始问题。)