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