所以我需要根据另一个查询的结果进行查询。
有没有办法让我将查询结果设置为变量,以便我可以在另一个查询中使用该结果?
例如:
{原始查询} --->
SELECT
tablea.number
FROM tablea
INNER JOIN tableb
ON tablea.name = tableb.name
WHERE tableb.zip = '11111'
现在我想使用此结果再进行另一个查询:
SELECT *
FROM tablea
WHERE number = (results of last query)
我认为有一种方法可以将第一个查询设置为一个变量,这样第二个查询就可以使用结果,只是不确定如何。感谢。
答案 0 :(得分:0)
您可以直接选择变量:
declare @number int
select @number = tablea.number
from ...etc...
select *
from tablea
where number = @number
还有一些其他方法可以做同样的事情,但这就是你用变量做的方法。
答案 1 :(得分:0)
您可以使用IN
或EXISTS
:
SELECT *
FROM tablea
WHERE name IN (SELECT name FROM tableb WHERE zip = '11111')
或者
SELECT *
FROM tablea A
WHERE EXISTS (SELECT 1 FROM tableb
WHERE zip = '11111'
AND name = A.name)