Suspect but not sure:
Is a simple list of tables in FROM
-clause is a full join by definition?
SELECT *
FROM table1, table2
and is the case where we are joining tables on condition of not equal parameters is an implementation of the full outer join or not? E.g.:
SELECT *
FROM table1
JOIN table2
ON table1.id <> table2.id
A little bit more details, i found so far:
"CROSS JOIN
returns the Cartesian product" http://en.wikipedia.org/wiki/Join_(SQL)
The list of tables to join may be specified in the following ways:
"Table1, Table2, Table3,...
This is the simplest form. The tables are joined in the manner that MySQL deems most efficient. This method can also be written as Table1 JOIN Table2 JOIN Table3,...
The CROSS
keyword can also be used, but it has no effect (e.g., Table1 CROSS JOIN Table2
) Only rows that match the conditions for both columns are included in the joined table."
MySQL Pocket Reference, Second Edition by George Reese
So, the first one really seems to be a CROSS JOIN
of the tables, or a Cartesian product.