看来在PostgreSQL中,empty_field != 1
(或其他值)是FALSE。如果这是真的,有人可以告诉我如何比较空的领域?Postgresql和一个空字段比较
我有下面的查询,翻译过来就是“选择用户组中的所有职位,其中一个尚未投票:
SELECT p.id, p.body, p.author_id, p.created_at
FROM posts p
LEFT OUTER JOIN votes v ON v.post_id = p.id
WHERE p.group_id = 1
AND v.user_id != 1
,它什么也不输出,即使票表是空的可能有什么毛病我的查询,而不是与上述
编辑逻辑:似乎改变v.user_id != 1
,以v.user_id IS DISTINCT FROM 1
,做的工作 和PostgreSQL文档:
对于非空输入,IS DISTINCT从 与<>运算符相同。 但是,当两个输入都为空时,它将返回false,并且只有一个 输入为空时,它将返回true。
可能与各种其他问题重复,例如http://stackoverflow.com/q/1833949/141081,http://stackoverflow.com/q/3777230/141081,... – Dirk 2010-11-08 18:40:41