Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 31432 invoked from network); 17 Sep 2010 13:04:53 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 17 Sep 2010 13:04:53 -0000 Received: (qmail 34839 invoked by uid 500); 17 Sep 2010 13:04:52 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 34534 invoked by uid 500); 17 Sep 2010 13:04:49 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 34526 invoked by uid 99); 17 Sep 2010 13:04:48 -0000 Received: from Unknown (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Sep 2010 13:04:48 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=10.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of simon.woodhead@simwood.com designates 64.18.2.20 as permitted sender) Received: from [64.18.2.20] (HELO exprod7og121.obsmtp.com) (64.18.2.20) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 17 Sep 2010 13:04:26 +0000 Received: from source ([209.85.212.45]) by exprod7ob121.postini.com ([64.18.6.12]) with SMTP ID DSNKTJNnRGInibZCYCjQFfi0/garPzV4QZEz@postini.com; Fri, 17 Sep 2010 06:04:06 PDT Received: by vws19 with SMTP id 19so1582864vws.4 for ; Fri, 17 Sep 2010 06:04:04 -0700 (PDT) MIME-Version: 1.0 Received: by 10.220.110.26 with SMTP id l26mr2481720vcp.279.1284728643805; Fri, 17 Sep 2010 06:04:03 -0700 (PDT) Received: by 10.220.194.198 with HTTP; Fri, 17 Sep 2010 06:04:03 -0700 (PDT) Date: Fri, 17 Sep 2010 14:04:03 +0100 Message-ID: Subject: Conditional joins From: Simon Woodhead To: user@couchdb.apache.org Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org Hi folks, I'm pretty green with views and have a need to do a join with results from one side returned if a condition is met on the other. In SQL I'd do: select * from child join parent on child.id=parent.id where parent.status=1; I've read the 'join' documentation (e.g. http://www.cmlenz.net/archives/2007/10/couchdb-joins) and can return documents of multiple types with matching keys ok. What I can't do is do the same but only if the parent matches a condition. Specifically, my data is like: {"45a6951b34a6f45bd44fd169c0003f9c","_rev":"1-6c88818b43d562c45e452bf00db06ee2","type":"domain","domain":"test.com","status":1}, {"_id":"45a6951b34a6f45bd44fd169c00046db","_rev":"1-37eaf0c4944dac9f5fe07b25c0b68b1d","type":"domain","domain":"test2.com","status":0}, {"_id":"45a6951b34a6f45bd44fd169c00053d9","_rev":"3-729f46c86ee4984941939c65787126fb","type":"user","domain":"test.com","user":"foo","password":"test123"}, {"_id":"45a6951b34a6f45bd44fd169c00060c8","_rev":"1-46997eba12e7adbb6e9266a1fe83c42d","type":"user","domain":"test2.com","user":"bar","password":"test123"} I want to be be able to query a view by domain and see all users for it if the status is 1. So in this case I'd see users for test.com but not for test2.com. Any help would be appreciated. Thanks! Simon -- ***** Email confidentiality notice ***** This message is private and confidential. If you have received this message in error, please notify us and remove it from your system. Simwood eSMS Limited is a limited company registered in England and Wales. Registered number: 03379831. Registered office: c/o HW Chartered Accountants, Keepers Lane, The Wergs, Wolverhampton, WV6 8UA. Trading address: Falcon Drive, Cardiff Bay, Cardiff, CF10 4RU.