PostgreSQL 'NOT IN' 和子查询

标签 postgresql subquery

我正在尝试执行此查询:

SELECT mac, creation_date 
FROM logs 
WHERE logs_type_id=11
AND mac NOT IN (select consols.mac from consols)

但我没有得到任何结果。我测试了一下,我知道语法有问题。在 MySQL 中,这样的查询非常有效。我添加了一行以确保 consols 表中不存在一个 mac,但它仍然没有给出任何结果。

最佳答案

当使用 NOT IN 时,你应该确保没有任何值是 NULL:

SELECT mac, creation_date 
FROM logs 
WHERE logs_type_id=11
AND mac NOT IN (
    SELECT mac
    FROM consols
    WHERE mac IS NOT NULL -- add this
)

关于PostgreSQL 'NOT IN' 和子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8463043/

相关文章:

mysql - 具有多个条件和顺序的复杂选择查询

perl - 数据库事件和 perl

python - 如何阻止 Django/PSQL 在创建失败时自动递增表 ID

database - 匹配模糊字符串

mysql - 使用嵌套子查询和 GROUP BY 的 SQL 查询

mysql - SQL - 选择每个 IN 参数的相同数量的结果

mysql - 在聚合子查询或连接中计数

SQL获取第一个完整行匹配子查询中的每个结果

django - 具有 'ignore case' 的唯一约束

postgresql - 通过 npgsql 使用 ca 证书连接到 .NET Core 上的 DO Postgres 集群