2010-07-05 32 views
0
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

您的預期成果是什麼? – 2010-07-05 16:22:42

+1

要說出什麼問題,您可能希望提供更多關於您想要實現的內容的內容,數據庫的結構如何,任何示例數據,期望的結果等等......您還可能會問'@Jamiec '更詳細地闡述他的論點。 – 2010-07-05 16:23:02

+1

我認爲這與這個問題有關? http://stackoverflow.com/questions/3180276/how-many-joins-can-a-sql-query-have在這種情況下,Jamiec的報價是在回答問題*「一個SQL查詢可以有多少連接」 ?* – 2010-07-05 16:23:57

回答

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?

實際上,對於所有(大多數)數據庫管理系統(包括SQL Server)來說,這個連接數是有限制的,但這並不是一個實際的限制,也就是說,如果接近它,數據庫/查詢結構可能需要修改。
編輯:看起來,使用SQL2008,此限制已被刪除(或更確切地說「推送」爲「僅限於可用資源」)。在SQL2000,下限爲256,比照"Tables per SELECT statement"(我認爲這是相關的限制因素之一),在下面的Microsoft文檔頁

我沒找到-nor認真查找SQL 2005文檔。還要注意,SQL 2000的256限制很可能會通過引入視圖而被人爲地提升(有人希望超出容易怪物 - ish 250+表的查詢;-))

在這個問題中顯示的查詢是相當適當的句法和語義,並可能是有效的,並提供所需的結果;這當然取決於具體的意圖和可用的特定索引(如果表格是「大」的話)。通常你應該嘗試解決這種非常原始的發帖中的後續問題(除非新的問題,有效地討論了其他概念或問題,而獨立於原來的問題:訂單

[#1] 點)。