[英]Using Inner Join in FilterClause
我正在一个旧项目中重写同步,所以我希望使其与旧代码尽可能相似。
旧代码的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 ...我该怎么办?
您可以在WHERE
子句中使用带有子查询的IN
来实现基本相同的逻辑。 这对您有用吗?
SELECT *
FROM dbo.table_a
WHERE table_a.num_id IN (SELECT num_id
FROM dbo.link_table_ab
WHERE link_table_ab.b_index = 5
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.