Join the World Page 2
Let's take a look at how an outer join works. Suppose I want to see a list of all customers along with some ordering information for those customers who have placed orders. The code will resemble the following.Select C.[Field List], O.[Field List] from Customers C left outer join Orders O on C.CustomerID=O.CustromerID
This query will return all of the customers, even those who haven't placed orders, along with the ordering information for those customers who have placed orders.
might have noticed the words "left outer join." In SQL server, there
are left outer and right outer joins. The left/right indicator tells
SQL server which is the table that you want all of the rows to come
from, and which is the one to include only matched rows. Left outer
joins will return all of the rows from the table on the left (the
one listed first in the from list)-and return the data from matching
rows in the table on the right. Right outer joins will return all of
the rows from the table on the right (the one listed second in the
from list)-and return data from the matching rows on the left.
about multiple joins?
the following query.
Select T1.fields, T2.fields, T3.fields
from T1 left outer join T2
left outer join T3
This query will first capture all of the rows in T1 and the matching data from T2. It will then take this intermediate "table" or rowset and add all of the data from the matching rows in T3.
things to remember to optimize joins.
SQL server, it's generally faster to put your conditions in the join
clause instead of in the where clause
your most limiting table first, to minimize the number of rows to be
3. Consider the question you are trying to answer and make sure you have chosen the right type of join.