2015-09-02 30 views
0

這是我在這裏的第一篇文章,雖然我已經在網站上多次。 我試圖找到答案,但沒有找到解決我的問題的答案。解決複雜的t-sql查詢的策略

的T-SQL查詢我的工作:

  1. 選擇約120場,
  2. 有大約40加入[其中一些含有 '選擇']
  3. 沒有返回數據。

我不知道SQL的血統,但它可能有有用的邏輯/連接 - 它應該返回數據。

解決疑難解答/解密查詢的最佳方法是什麼?

謝謝!

在遵循建議後,我發現了一些語法錯誤(在Join語句中缺少'ON'子句) - 並且我找到了排除數據的連接。第一個是選擇字段列表中未包含的表格。當沒有行返回的表的連接存在時,是「問題」還是意圖使用連接排除行?這個數據本身對我來說是新的,或者我可能不會問這個問題。

謝謝!

+0

您可以使用CTE來降低複雜性並刪除子查詢連接。但是,您必須瞭解該查詢才能夠完全重構它。 –

+0

CTE在連接部分?我的問題的一部分是如何理解[解密] ...是否有一個公認的最佳做法,在哪裏開始嘗試理解查詢並將它們放在一起? – Talay

+0

*「你怎麼吃大象?一次咬一口。」* – lad2025

回答

0

很簡單 - 一個從/加入同時
如果連接有一個選擇,然後測試選擇

select cols 
    from table 
where =... 

然後

select cols 
    from table 
    join table1 
    on 
where 

構建它,直到你得到錯誤的答案並修復它