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
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 |