When you join tables, the type of join that you create affects the rows that appear in the
titles
and publishers
tables to create a result set that shows the publisher name for each title. In an inner join, titles for which you do not have publisher information are not included in the result set, nor are publishers with no titles. The resulting SQL for such a join might look like this:
SELECT title, pub_name
FROM titles INNER JOIN
publishers ON titles.pub_id = publishers.pub_id
Note Columns containing NULL do not match any values when you are creating an inner join and are therefore excluded from the result set. Null values do not match other null values.
For more information on creating an inner join, see Joining Tables Automatically.
titles
and publishers
tables to include all titles, even those you do not have publisher information for:
SELECT titles.title_id,
titles.title,
publishers.pub_name
FROM titles LEFT OUTER JOIN publishers
ON titles.pub_id
= publishers.pub_id
titles
and publishers
tables will include all publishers, even those who have no titles in the titles
table. The resulting SQL might look like this:
SELECT titles.title_id,
titles.title,
publishers.pub_name
FROM titles RIGHT OUTER JOIN publishers
ON titles.pub_id
= publishers.pub_id
titles
and publishers
shows all titles and all publishers, even those that have no match in the other table.
SELECT titles.title_id,
titles.title,
publishers.pub_name
FROM titles FULL OUTER JOIN publishers
ON titles.pub_id
= publishers.pub_id
For more information on creating an outer join, see Creating Outer Joins.
SELECT *
FROM authors CROSS JOIN publishers
For more information on creating a cross join, see Removing Joins.
See Also
Creating Outer Joins | Creating Self-Joins | How the Query Designer Represents Joins | Joining Tables Automatically | Joining Tables Manually | Modifying Join Operators | Querying Using Multiple Tables | Removing Joins