-2

I have two tables:

t1
------------
id
user


t2
------------
user_id
item

I need to select from t1 if no matching records found in t2

SELECT * 
FROM t1
LEFT JOIN t2 ON (t1.id = t2.user_id)
WHERE ???

Kinda stuck...

santa
  • 12,234
  • 49
  • 155
  • 255

2 Answers2

4
SELECT t1.* 
FROM t1
LEFT JOIN t2 ON  t1.id = t2.user_id 
WHERE t2.user_id IS NULL
Oto Shavadze
  • 40,603
  • 55
  • 152
  • 236
0

You can use NOT EXISTS, e.g.:

SELECT * FROM t1
WHERE NOT EXISTS(
    SELECT * FROM t2 WHERE user_id = t1.id
); 

Here's the SQL Fiddle.

Darshan Mehta
  • 30,102
  • 11
  • 68
  • 102