sql - 与 UNION SQL 查询相反

标签 sql postgresql

我有 2 个表:

interests (storing the interest ID and name)
person_interests(storing the person_id and interest_id)

我如何选择特定人未选择的所有兴趣?

我已经尝试了以下 SQL 查询,但仍然没有得到想要的结果

SELECT * 
  FROM interests LEFT JOIN person_interests 
               ON interests.id=person_interests.person_id
 WHERE person_interests.id IS NULL 
   AND person_id=66;

最佳答案

使用NOT EXISTS

SELECT *
FROM interests
WHERE NOT EXISTS (
        SELECT person_interests.interest_id
        FROM person_interests
        WHERE person_id = 66
            AND interests.id = person_interests.interest_id
        )

关于sql - 与 UNION SQL 查询相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28287879/

相关文章:

postgresql - 为什么postgreSQL在执行vacuum full table时等待? 4T表数据

sql - SQL Azure 中的内部版本号

MySQL 更快的 INSERT

mysql - SQL中左连接和右连接的原因是什么

postgresql - 无需停机即可添加色谱柱

database - 用户表 - redis 或 postgres

mysql - 使用group by从mysql选择查询中删除相似的字段

sql - 如何获取存储过程中引用的所有列的列表?

sql - 在 Postgresql 中使用正则表达式从现有字符串创建新字符串

postgresql - 在 JDBC 中,我如何知道 FETCH 何时结束?