SQL从表中选择不在其他表中的SQL

时间:2014-04-12 02:17:17

标签: php mysql sql select

我正在尝试选择其用户ID不在另一个表中的所有用户。

用户表(用户ID为user_id

Ghosts表(用户ID为id

这是我到目前为止所得到的:

$sql = "select * from users where users.user_id <> ghosts.id;";

请告知......

干杯!

2 个答案:

答案 0 :(得分:2)

您可以使用NOT IN:

select * from users u where u.user_id not in (select id from ghosts);

或NOT EXISTS:

select *
  from users u
 where not exists (select 1 from ghosts g where g.id = u.user_id)

答案 1 :(得分:0)

这样的事情也可能有用,虽然我喜欢Brian的答案。

SELECT *
FROM users u
LEFT JOIN ghosts g
ON u.user_id = g.id
WHERE g.id IS NULL