我正在try 执行以下查询:

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时,应确保所有值均不为空:

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相关问答推荐

使用函数返回值作为另一个函数的参数

多克.波斯格雷斯.PgAdmin4

在 Postgres 中,部分索引比普通索引需要更多的时间和成本来执行

PostgreSQL 连接字符串的正则表达式

在 PostgreSQL 中提高 GROUP BY ... HAVING COUNT(...) > 1 的性能

订阅标签保存在哪个表中?

Regexp_replace 行为会改变,如果它用空白字符串或 null 替换字符串数组中的字符串

Postgres内部如何计算月份间隔

Spring:如何在 PostgreSQL 中使用 KeyHolder

是否可以使用 pgAdmin4 自动格式化/美化 SQL 查询?

如何在 PostgreSQL hstore 中使用通配符查询值

plpgsql:使用 2 个 OUT 参数调用函数

在PostgreSQL中 Select 数组列的总和

与 Oracle 的 CONNECT BY ... START WITH 等效的 PostgreSQL 语法是什么?

如何正确索引多对多关联表?

如何将主键添加到视图?

解释结果中的Recheck Cond是什么意思?

postgresql 查询以显示用户的组

python postgres 我可以 fetchall() 100 万行吗?

Rails 5 db 迁移:如何修复 ActiveRecord::ConcurrentMigrationError