2016-11-16 102 views
0

不知道如何提出这个问题,所以我通过给出场景来问。来自SQL服务器查询结果的查询

Select ID, CompanyID, Company_name from memberdetails where status in ('A','S'); 

查询返回说1000行。现在我想从上面的CompanyID列的结果中搜索表industry_catagory。我怎样才能创建这个单一的sql声明。

+0

您是否需要第一个查询的结果?或者你只需​​要'CompanyID',这样你就可以将它用于第二个查询? – Gavin

+1

在CompanyId上将'Join'加入到两个表中。 –

+0

您可以加入或使用子查询。使用提供的查询作为子查询WHERE companyID IN(Select ID,CompanyID,Company_name from memberdetails where status in('A','S')) –

回答

1

使用下一方法之一:

子查询: -

Select CompanyID from industry_catagory 
where CompanyID in (Select CompanyID from memberdetails where status in ('A','S')) 

加入: -

Select CompanyID 
from industry_catagory a , memberdetails b 
where a.CompanyID = b.CompanyID 
and b.status in ('A','S') 
+1

推广使用'JOIN' sintaxis,Aaron Bertrand写了一篇不错的文章[不良习惯踢:使用旧式JOIN](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx)关于它。 –

2

这应该使用更多最新的加入语法:

SELECT CompanyID 
FROM industry_catagory a 
INNER JOIN memberdetails b ON a.CompanyID = b.CompanyID 
WHERE b.status in ('A','S')