Re: RFE: Use JOIN instead of WHERE in Graphical Query Builder
От | Guillaume Lelarge |
---|---|
Тема | Re: RFE: Use JOIN instead of WHERE in Graphical Query Builder |
Дата | |
Msg-id | 1342644219.1989.89.camel@localhost.localdomain обсуждение исходный текст |
Ответ на | Re: RFE: Use JOIN instead of WHERE in Graphical Query Builder ("Daniel Serodio (lists)" <daniel.lists@mandic.com.br>) |
Ответы |
Re: RFE: Use JOIN instead of WHERE in Graphical
Query Builder
|
Список | pgadmin-support |
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.lists@mandic.com.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? > 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. -- Guillaume http://blog.guillaume.lelarge.info http://www.dalibo.com
В списке pgadmin-support по дате отправления: