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小时前
它有什么不对吗?
加入=内部加入其他什么?
答案 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] 程序问题:通常你应该尝试在最初的帖子中解决这类后续问题(除非新问题有效地讨论了其他概念或问题,相当独立于原始问题。)