Knowing how joins are processed helps to understand them—and to figure out why, when you incorrectly state a join, you sometimes get unexpected results.
The first step in processing a join is to form the Cartesian product of the tables—all the possible combinations of the rows from each of the tables. The number of rows in a Cartesian product of two tables is equal to the number of rows in the first table multiplied by the number of rows in the second table.
select au_lname, au_fname from authors, publishers
This Cartesian product does not contain any particularly useful information. It is actually misleading because it implies that every author in the database has a relationship with every publisher in the database—which is not true.
Including a where clause in the join specifies the columns to be matched and the basis on which to match them. It may also include other restrictions. Once SAP ASE forms the Cartesian product, it eliminates the rows that do not satisfy the join by using the conditions in the where clause.
where authors.city = publishers.city