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
consisting of all column names that appear in both
input tables. As with USING>, these columns appear
only once in the output table. If there are no common
- column names, NATURAL behaves like
- CROSS JOIN.
+ column names, NATURAL JOIN behaves like
+ JOIN ... ON TRUE, producing a cross-product join.
NATURAL
-
NATURAL is shorthand for a
+ NATURAL is shorthand for a
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, NATURAL is equivalent
+ to ON TRUE>.