2013-07-18 5 views
0

J'ai donc besoin de faire une requête basée sur les résultats d'une autre requête.
Y at-il un moyen pour moi de définir le résultat d'une requête à une variable afin que je puisse utiliser le résultat de cela dans une autre requête?
Exemple:
{query} originale --->SQL - stocker une requête en tant que variable locale

SELECT 
tablea.number 

FROM tablea 

INNER JOIN tableb 

ON tablea.name = tableb.name 

WHERE tableb.zip = '11111' 

Maintenant, je veux utiliser ce résultat pour faire ensuite une autre requête:

SELECT * 

FROM tablea 

WHERE number = (results of last query) 

Je pense Theres un moyen de régler la première requête à une variable de sorte que le second peut simplement utiliser le résultat, mais ne sais pas comment. Merci.

Répondre

0

Vous pouvez utiliser IN ou EXISTS:

SELECT * 
FROM tablea 
WHERE name IN (SELECT name FROM tableb WHERE zip = '11111') 

Ou

SELECT * 
FROM tablea A 
WHERE EXISTS (SELECT 1 FROM tableb 
       WHERE zip = '11111' 
       AND name = A.name) 
+0

Merci! J'ai essayé de trouver la façon la plus simple de le faire. Fonctionne très bien. –

0

Vous pouvez sélectionner directement dans une variable:

declare @number int 

select @number = tablea.number 
from ...etc... 

select * 
from tablea 
where number = @number 

Il y a d'autres façons de faire la même chose, mais comment vous le feriez avec une variable.

Questions connexes