Inner joins - relating data between tables

The SQL join is what relational DB' are all about. The syntax can either be explicit or implicit. I find the explicit notation is safer because the ON clause is a constant reminder of the join. The implicit notation uses the WHERE clause and you can more easily lose track of important relationships in complex queries. Also it's easier for others to follow explicit joins.

Sample syntax below is from wikipedia.

"SQL specifies two different syntactical ways to express joins: "explicit join notation" and "implicit join notation".

The "explicit join notation" uses the JOIN keyword to specify the table to join, and the ON keyword to specify the predicates for the join, as in the following example:

SELECT * FROM employee INNER JOIN department ON employee.DepartmentID = department.DepartmentID

The "implicit join notation" simply lists the tables for joining (in the FROM clause of the SELECT statement), using commas to separate them. Thus, it specifies a cross-join, and the WHERE clause may apply additional filter-predicates (which function comparably to the join-predicates in the explicit notation).

The following example shows a query which is equivalent to the one from the previous example, but this time written using the implicit join notation:

SELECT * FROM employee, department  
WHERE employee.DepartmentID = department.DepartmentID"