SQL选择并查找其他表中不存在的行

时间:2013-12-20 10:52:38

标签: mysql sql

我有两张电话号码表。

我想检查一下addresbook表中是否存在用户表中不存在的新行。

因为我是SQL的新手,这个查询是否正确?

SELECT * 
FROM addressbook
WHERE NOT EXISTS (
  SELECT Phone1
  FROM users 
  WHERE addressbook.phone = users.phone1
)

编辑:我使用PHPMyAdmin接口使用MySQL,抱歉不在

之前指定

2 个答案:

答案 0 :(得分:3)

似乎没事,但我会这样做。

select a.* from addressbook a
left outer join users u on a.phone = u.phone1
where
(u.phone1 is null)

这更简单,也可能更快。

答案 1 :(得分:0)

在SQL Server中,您的查询是

SELECT * from addressbook WHERE Phone NOT in (SELECT Phone1 from users)