Обсуждение: Continue with the original idea, about JOINS....

Поиск
Список
Период
Сортировка

Continue with the original idea, about JOINS....

От
"Jhonatas M. Rodríguez"
Дата:
Thank you at all for yours request



   Hey, i have a question about of the uses the joins
in PostgreSQL.

In SQL Server the joins i can use with the simbol(*),
Example:. the right join is
"table1.field1 =* table2.field2"

In Oracle the joins are with the simbol (+),
Example:. the left join is
"table1.field1 (+)= table2.field2"

What is the simbol the PostgreSQL in the use the
JOINS?....

I want to continue with the original idea, how i do a
join without
(table1 LEFT JOIN table2 ON (table1.field1 =
table2.field2)
table2 RIGHT OUTER JOIN table1 ON (table2.field2 =
table1.field1))

else with a simbol (as (*,+, anything)).

        Best regards,

                          Jhonatas M. Rodríguez


=====
Jhonatas M. Rodríguez

_________________________________________________________
Do You Yahoo!?
Información de Estados Unidos y América Latina, en Yahoo! Noticias.
Visítanos en http://noticias.espanol.yahoo.com

Re: Continue with the original idea, about JOINS....

От
Tom Lane
Дата:
"=?iso-8859-1?q?Jhonatas=20M.=20Rodr=EDguez?=" <jhonatas_rod@yahoo.com> writes:
> I want to continue with the original idea, how i do a
> join without
> (table1 LEFT JOIN table2 ON (table1.field1 =
> table2.field2)
> table2 RIGHT OUTER JOIN table1 ON (table2.field2 =
> table1.field1))
> else with a simbol (as (*,+, anything)).

You don't.  Those syntaxes are nonstandard and we don't support them.
The ISO SQL standard defines JOIN, and that's what we support.

            regards, tom lane

Re: Continue with the original idea, about JOINS....

От
Stephan Szabo
Дата:
On Fri, 25 Jun 2004, [iso-8859-1] Jhonatas M. Rodr�guez wrote:

>    Hey, i have a question about of the uses the joins
> in PostgreSQL.
>
> In SQL Server the joins i can use with the simbol(*),
> Example:. the right join is
> "table1.field1 =* table2.field2"
>
> In Oracle the joins are with the simbol (+),
> Example:. the left join is
> "table1.field1 (+)= table2.field2"
>
> What is the simbol the PostgreSQL in the use the
> JOINS?....
>
> I want to continue with the original idea, how i do a
> join without
> (table1 LEFT JOIN table2 ON (table1.field1 =
> table2.field2)
> table2 RIGHT OUTER JOIN table1 ON (table2.field2 =
> table1.field1))
>
> else with a simbol (as (*,+, anything)).

You don't do outer joins in PostgreSQL with a symbol.  We only
support the standard mandated way of doing the joins. Syntaxes
like the Oracle and SQL Server one above are at best imprecise
and at worst entirely broken(*) so I doubt that we're going to
support one in the future.

(*) - The symbol using syntaxes above are ripe for possible problems
where you have conflicting conditions which you either need to diagnose
or come up with semantics for. Also, since join ordering is potentially
significant to outer join behavior, syntax that hides that is dangerous.

Re: Continue with the original idea, about JOINS....

От
Sam Barnett-Cormack
Дата:
On Fri, 25 Jun 2004, [iso-8859-1] Jhonatas M. Rodríguez wrote:

> Thank you at all for yours request
>
>
>
>    Hey, i have a question about of the uses the joins
> in PostgreSQL.
>
> In SQL Server the joins i can use with the simbol(*),
> Example:. the right join is
> "table1.field1 =* table2.field2"
>
> In Oracle the joins are with the simbol (+),
> Example:. the left join is
> "table1.field1 (+)= table2.field2"
>
> What is the simbol the PostgreSQL in the use the
> JOINS?....
>
> I want to continue with the original idea, how i do a
> join without
> (table1 LEFT JOIN table2 ON (table1.field1 =
> table2.field2)
> table2 RIGHT OUTER JOIN table1 ON (table2.field2 =
> table1.field1))
>
> else with a simbol (as (*,+, anything)).

The keyword you are looking for is NATURAL, provided the joining field
has the same name in both tables (which is just good design practice).

table1 NATURAL INNER JOIN table2, for example, is equivalent to table1
INNER JOIN table2 ON (table1.table2_keyfield = table2.table2_keyfield)

Feel free to look in the documentation under 'joins' - it's well
described in there.

--

Sam Barnett-Cormack
Student of Physics & Maths | Programmer (Perl, PHP, C++, C, whatever)
Lancaster University       | Administrator (PostgreSQL, Linux, whatever)