Received: from localhost (unknown [200.46.204.191]) by postgresql.org (Postfix) with ESMTP id DE12B2E296B for ; Wed, 14 Nov 2007 07:35:37 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.191]) (amavisd-maia, port 10024) with ESMTP id 79608-02 for ; Wed, 14 Nov 2007 07:35:26 -0400 (AST) Received: from bonito.ulb.ac.be (smtp.ulb.ac.be [164.15.59.220]) by postgresql.org (Postfix) with ESMTP id 5430E2E0F8F for ; Wed, 14 Nov 2007 07:35:26 -0400 (AST) Received: from [10.0.0.194] (bebif01.ulb.ac.be [164.15.125.4]) by bonito.ulb.ac.be (Postfix) with ESMTP id 7684D62E for ; Wed, 14 Nov 2007 12:35:22 +0100 (CET) Subject: ALL() question From: Julien Cigar To: pgsql-sql@postgresql.org Content-Type: text/plain Date: Wed, 14 Nov 2007 14:39:02 +0100 Message-Id: <1195047542.3190.9.camel@frodon.be-bif.ulb.ac.be> Mime-Version: 1.0 X-Mailer: Evolution 2.12.0 Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.001 tagged_above=0 required=5 tests=BAYES_50=0.001 X-Spam-Level: X-Archive-Number: 200711/61 X-Sequence-Number: 29589 Hello, I have a problem with the ALL() subquery expression. I have three tables: - specimens - test_bits - specimen_test_bits The specimen_test_bits table contains two foreign keys, one to specimens(id), another to test_bits(id). Here is an output of specimen_test_bits: muridae=> select * from specimen_test_bits; specimen_id | test_bit_id -------------+------------- 46096 | 1 46096 | 2 46096 | 3 46096 | 4 52894 | 1 52894 | 3 12546 | 2 What I would like is a query that returns all the specimen_id of this table which have _all_ the given test_bit_id. So in this case, with test_bit_id 1,2,3,4 it should return only specimen_id 46096. With the following I got a syntax error: select specimen_id from specimen_test_bits where test_bit_id = all(1,2,3,4); The following works but no rows are returned : select specimen_id from specimen_test_bits where test_bit_id = all(select id from test_bits where id in (1,2,3,4)); Any idea how I could do this ? I guess the problem is my ALL() expression ... In advance thanks, Julien