I'm trying to wrap my head around this multi-join problem where I have two tables

```
INTERESTED_IN
email           item
-----------------------
bob@email.com   widgetA
karen@email.com widgetA
karen@email.com widgetB
sue@email.com   widgetC
tony@email.com  widgetA
tony@email.com  widgetB
tony@email.com  widgetC

PURCHASED
email           item
-----------------------
bob@email.com   widgetA
karen@email.com widgetA
tony@email.com  widgetB
julie@email.com widgetC

```

**Objective:** To return the email and item of people who exist in the interested\_in table and in the purchased table but only the items that are not in the purchased table. So the resulting table would like this

```
email           item
-----------------------
karen@email.com widgetB
tony@email.com  widgetA
tony@email.com  widgetC

```

Conceptually I know how to do this, but I'm having a very hard time wrapping my head around the most efficient way to do this as the data sets could be very large. Can someone enlighten me on the best way to do this.

Thanks!

---

Update

```
SELECT email, item
FROM (
    SELECT i.email, i.item
    FROM interested_in i
    INNER JOIN purchased  p ON i.email = p.email
    ) 

MINUS

SELECT email, item
FROM purchased 

```