繁体   English   中英

在FilterClause中使用内部联接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM