select * from users where user_id NOT in (select ban_userid from banlist) - Mailing list pgsql-general

From Alexander Farber
Subject select * from users where user_id NOT in (select ban_userid from banlist)
Date
Msg-id 943abd910608171402p2fb1111av251f741320341bd0@mail.gmail.com
Whole thread Raw
Responses Re: select * from users where user_id NOT in (select  (Stephan Szabo <sszabo@megazone.bigpanda.com>)
List pgsql-general
Hello,

I have this strange problem that the following statement works:

phpbb=> select user_id, username from phpbb_users
phpbb->  where user_id in (select ban_userid from phpbb_banlist);
 user_id | username
---------+----------
       3 | La-Li
(1 row)


But the negative one returns nothing:

phpbb=> select user_id, username from phpbb_users
phpbb-> where user_id not in (select ban_userid from phpbb_banlist);
 user_id | username
---------+----------
(0 rows)

Eventhough there are 3 other users in the phpbb_users table:

phpbb=> select user_id, username from phpbb_users;
 user_id | username
---------+-----------
      -1 | Anonymous
       3 | La-Li
       4 | Vasja
       2 | Alex
(4 rows)

And there is only one user (La-Li, id=3) in the phpbb_banlist:

phpbb=> select * from phpbb_banlist;
 ban_id | ban_userid | ban_ip |  ban_email
--------+------------+--------+-------------
      1 |          3 |        |
      4 |            |        | *@gmail.com
(2 rows)

Thank you
Alex

pgsql-general by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: Newbie "Copy From" not working
Next
From: "Fabio Victora Hecht"
Date:
Subject: count and limit