Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using data from previous query

I want use a query like such

SELECT personId
FROM Person p 
Inner Join address a on p.personId=a.personId
WHERE(a.created > GETDATE() -10)

I want to then use this data to filter this query

SELECT * 
FROM accounts a
WHERE a.person /*is in the results of the previous query */

How can I do this?

like image 391
Antarr Byrd Avatar asked Apr 23 '26 03:04

Antarr Byrd


1 Answers

This should do the trick (assuming you have the column personId in your account table).

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())))

Alternatively, rather than using a subquery you could just join the 3 tables directly:

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())
like image 182
GShenanigan Avatar answered Apr 24 '26 22:04

GShenanigan