Re: RFE: Use JOIN instead of WHERE in Graphical Query Builder

From: "Daniel Serodio (lists)" <daniel(dot)lists(at)mandic(dot)com(dot)br>
To: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
Cc: "Nelson A(dot) de Oliveira" <naoliv(at)gmail(dot)com>, pgadmin-support(at)postgresql(dot)org
Subject: Re: RFE: Use JOIN instead of WHERE in Graphical Query Builder
Date: 2012-07-23 14:32:39
Message-ID: 500D6087.2090802@mandic.com.br
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-support

Guillaume Lelarge wrote:
> On Tue, 2012-07-17 at 20:06 -0300, Daniel Serodio (lists) wrote:
>> Nelson A. de Oliveira wrote:
>>> Hi!
>>>
>>> On Tue, Jul 17, 2012 at 7:36 PM, Daniel Serodio (lists)
>>> <daniel(dot)lists(at)mandic(dot)com(dot)br> wrote:
>>>> I'm using pgAdmin 1.14.3, and its Graphical Query Builder generates WHERE
>>>> clauses for joins. It would be nice if it generated JOIN clauses instead.
>>> Is there any kind of difference between WHERE or JOINs in PostgreSQL?
>>> Aren't they all a cartesian product internally?
>> They may be implemented the same way in PostgresSQL,
>
> They are.
>
>> but they're two different concepts.
>
> How so?
My relational algebra is a little rusty, but from what I recall plus a
quick Wikipedia read, WHERE is a "selection (σ)" while JOIN is a "join
(⋈, θ, ⋉ or ▷"):
http://en.wikipedia.org/wiki/Relational_algebra#Set_operators
>> Because of this, I find it a lot easier to
>> understand a complex query when the joins are in a JOIN clause.
>>
>
> I do agree here.
>
>> In more practical terms, it's easier to change "a JOIN b ON a.pk = b.fk"
>> to "a LEFT JOIN b ON a.pk = b.fk" (just have to type the LEFT keyword,
>> regardless of which tables/columns are used) then change "WHERE a.pk =
>> b.fk" to "WHERE a.pk = b.fk OR b.fk IS NULL" (have to add "OR b.fk IS
>> NULL", which changes according to which tables/columns are used).
>>
>
> Yes, and it's less risky. If you use a JOIN, you have to add a ON clause
> if you don't want to get a syntax error. That protects you from
> cartesian product.
>
> To get back on the request, that could be interesting to do, and
> probably not hard.
Thanks.

Regards,
Daniel Serodio

In response to

Browse pgadmin-support by date

  From Date Subject
Next Message Guillaume Lelarge 2012-07-23 16:49:18 Re: default parameters
Previous Message Martin French 2012-07-23 14:20:02 Re: Error opening file without suffix