當滿足某些條件時,我需要加入一個表,並且在滿足其他條件時LEFT加入它。由於我在MS CRM動態與過濾器,我不能使用UNIONSQL JOIN和LEFT在不同的條件下加入同一個表
SELECT stuff.stuffs
FROM MainTable
JOINS othertable
LEFT JOIN othertables
LEFT JOIN TableX as X1 ON (Conditions1.1 = X1.1
AND MainTable.Type = 1)
JOIN TableX as X2 ON (Conditions2.2 = X2.2
AND MainTable.Type = 2)
- 如果我註釋掉X2部分,我得到了我從X1的部分並沒有什麼從X2需要。
- 如果我左加入X2部分,我在X2中有額外的信息。
- 如果我這樣離開它,我會從X2部分得到我需要的,但從X1中得不到什麼。
我嘗試了幾個變體,但我無法達到滿意的解決方案。
編輯:我原來的查詢是這樣:
SELECT stuff.stuffs
FROM MainTable
(LEFT) JOIN TableX as X1
ON (Conditions1.1 = X1.1
AND MainTable.Type = 1)
OR
ON (Conditions2.2 = X2.2
AND MainTable.Type = 2)
但如果是作爲左加入,我從X2 獲得額外的信息和JOIN給我從X1缺少信息,
我們能否看到最終查詢?你需要的東西仍然不清楚。 – ErikE 2010-07-22 01:53:16