mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-17 19:30:00 +08:00
Doc: clarify description of degenerate NATURAL joins.
Claiming that NATURAL JOIN is equivalent to CROSS JOIN when there are no common column names is only strictly correct if it's an inner join; you can't say e.g. CROSS LEFT JOIN. Better to explain it as meaning JOIN ON TRUE, instead. Per a suggestion from David Johnston. Discussion: https://postgr.es/m/CAKFQuwb+mYszQhDS9f_dqRrk1=Pe-S6D=XMkAXcDf4ykKPmgKQ@mail.gmail.com
This commit is contained in:
parent
eb145fdfea
commit
ed3dc224e5
doc/src/sgml
@ -391,8 +391,8 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r
|
||||
consisting of all column names that appear in both
|
||||
input tables. As with <literal>USING</>, these columns appear
|
||||
only once in the output table. If there are no common
|
||||
column names, <literal>NATURAL</literal> behaves like
|
||||
<literal>CROSS JOIN</literal>.
|
||||
column names, <literal>NATURAL JOIN</literal> behaves like
|
||||
<literal>JOIN ... ON TRUE</literal>, producing a cross-product join.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
|
@ -603,9 +603,12 @@ TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
|
||||
<varlistentry>
|
||||
<term><literal>NATURAL</literal></term>
|
||||
<listitem>
|
||||
<para><literal>NATURAL</literal> is shorthand for a
|
||||
<para>
|
||||
<literal>NATURAL</literal> is shorthand for a
|
||||
<literal>USING</> list that mentions all columns in the two
|
||||
tables that have the same names.
|
||||
tables that have matching names. If there are no common
|
||||
column names, <literal>NATURAL</literal> is equivalent
|
||||
to <literal>ON TRUE</>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
Loading…
Reference in New Issue
Block a user