来自SQL服务器查询结果的查询
问题描述:
不知道如何提出这个问题,所以我通过给出场景来问。来自SQL服务器查询结果的查询
Select ID, CompanyID, Company_name from memberdetails where status in ('A','S');
查询返回说1000行。现在我想从上面的CompanyID
列的结果中搜索表industry_catagory
。我怎样才能创建这个单一的sql
声明。
答
使用下一方法之一:
子查询: -
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)关于它。 –
答
这应该使用更多最新的加入语法:
SELECT CompanyID
FROM industry_catagory a
INNER JOIN memberdetails b ON a.CompanyID = b.CompanyID
WHERE b.status in ('A','S')
您是否需要第一个查询的结果?或者你只需要'CompanyID',这样你就可以将它用于第二个查询? – Gavin
在CompanyId上将'Join'加入到两个表中。 –
您可以加入或使用子查询。使用提供的查询作为子查询WHERE companyID IN(Select ID,CompanyID,Company_name from memberdetails where status in('A','S')) –