我想使用这样的查询
SELECT personId
FROM Person p
Inner Join address a on p.personId=a.personId
WHERE(a.created > GETDATE() -10)
然后,我想使用此数据来过滤此查询
SELECT *
FROM accounts a
WHERE a.person /*is in the results of the previous query */
我怎样才能做到这一点?
最佳答案
这应该可以解决问题(假设您的帐户表中有personId列)。
SELECT *
FROM accounts a
WHERE a.personId in (
SELECT DISTINCT personId
FROM Person p
Inner Join address a on p.personId=a.personId
WHERE(a.created > DATEADD(d,-10,GETDATE())))
另外,也可以不直接使用3个表,而不必使用子查询:
SELECT
C.*
FROM
accounts C
INNER JOIN
Person P ON P.personId = C.personId
INNER JOIN
[Address] A ON A.personId = P.PersonId
WHERE
A.created > DATEADD(d,-10,GETDATE())
关于sql - 使用上一个查询中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8097436/