X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by postgresql.org (Postfix) with ESMTP id D145C9DCA05 for ; Thu, 26 Jan 2006 12:17:23 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 46966-02 for ; Thu, 26 Jan 2006 12:17:21 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey- Received: from moonunit2.moonview.localnet (wsip-68-15-5-150.sd.sd.cox.net [68.15.5.150]) by postgresql.org (Postfix) with ESMTP id 188549DCA00 for ; Thu, 26 Jan 2006 12:17:20 -0400 (AST) Received: from [192.168.0.3] (moonunit3.moonview.localnet [192.168.0.3]) by moonunit2.moonview.localnet (8.13.1/8.13.1) with ESMTP id k0QFIjpL032252 for ; Thu, 26 Jan 2006 07:18:45 -0800 Message-ID: <43D8F4FD.4040703@modgraph-usa.com> Date: Thu, 26 Jan 2006 08:12:45 -0800 From: "Craig A. James" User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050716) X-Accept-Language: en-us, en MIME-Version: 1.0 To: pgsql-performance@postgresql.org Subject: Re: Query optimization with X Y JOIN References: <786c2f6d0601260206k2201a548p48af7c7fc085d3b2@mail.gmail.com> <005d01c6228f$3772dca0$0d310d05@fatchubby> In-Reply-To: <005d01c6228f$3772dca0$0d310d05@fatchubby> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, score=0.634 required=5 tests=[AWL=-0.535, BIZ_TLD=1.169] X-Spam-Score: 0.634 X-Spam-Level: X-Archive-Number: 200601/440 X-Sequence-Number: 16918 First, this isn't really the right place to ask -- this forum is about performance, not SQL syntax. Second, this isn't a question anyone can answer in a reasonable length of time. What you're asking for usually is taught in a class on relational database theory, which is typically a semester or two in college. If you really need a crash course, dig around on the web for terms like "SQL Tutorial". Good luck, Craig J@Planeti.Biz wrote: > Hey guys, how u been. This is quite a newbie question, but I need to ask > it. I'm trying to wrap my mind around the syntax of join and why and > when to use it. I understand the concept of making a query go faster by > creating indexes, but it seems that when I want data from multiple > tables that link together the query goes slow. The slow is typically due > to expensive nested loops. The reason is, all my brain understands is: > > select > tablea.data > tableb.data > tablec.data > from > tablea > tableb > tablec > where > tablea.pri_key = tableb.foreign_key AND > tableb.pri_key = tablec.foreign_key AND... > > From what I read, it seems you can use inner/outer right/left join on > (bla) but when I see syntax examples I see that sometimes tables are > omitted from the 'from' section of the query and other times, no. > Sometimes I see that the join commands are nested and others, no and > sometimes I see joins syntax that only applies to one table. From what I > understand join can be used to tell the database the fast way to murge > table data together to get results by specifiying the table that has the > primary keys and the table that has the foreign keys. > > I've read all through the postgres docs on this command and I'm still > left lost. Can someone please explain to me in simple language how to > use these commands or provide me with a link. I need it to live right > now. Thanx. > >