0
我正在舊項目中重寫同步,並且我希望儘可能保持它與舊代碼類似。在FilterClause中使用Inner Join
舊代碼的SQL代碼類似於FilterClause
。直到現在,將舊的代碼選擇表達式轉換爲相應的FilterClause非常簡單。例如:
SELECT * FROM dbo.table_a WHERE num_id = @id
已被翻譯爲:
...FilterClause = "num_id = @id";
不過,現在我遇到了一個問題...
的FilterClauses定義是獲取或設置SQL WHERE子句(不含WHERE關鍵字)用於過濾來自基表的結果集。 但現在我的SQL表達式是:
SELECT *
FROM dbo.table_a
INNER JOIN
(
SELECT DISTINCT(num_id)
FROM dbo.link_table_ab
WHERE link_table_ab.b_index = 5
) T2 ON table_a.num_id= T2.num_id
所以問題是,有在主查詢中沒有WHERE ...我該怎麼辦?
對速度有多大影響? – Markus 2014-11-24 13:09:37
@Markus。 。 。它應該與原始框架中的連接非常相似。有時候,'exists'比'in'快一點,但這可能取決於數據和系統。 – 2014-11-24 13:17:03
DISTINCT不會造成任何問題嗎? – Markus 2014-11-24 13:18:44