Search

Wednesday, June 29, 2011

Outer and Inner join .


An inner join is a join where the only results displayed are results where the keys are in both tables. Inner joins (the typical join operation, which uses some comparison operator like = or <>). These include equi-joins and natural joins.
Inner joins use a comparison operator to match rows from two tables based on the values in common columns from each table. For example, retrieving all rows where the student identification number is the same in both the students and courses tables.
An outer join will display the results for all keys in one tables, a left join from the first and a right join from the second. Outer joins. Outer joins can be a left, a right, or full outer join. 
Outer joins are specified with one of the following sets of keywords when they are specified in the FROM clause.
LEFT JOIN or LEFT OUTER JOIN 
The result set of a left outer join includes all the rows from the left table specified in the LEFT OUTER clause, not just the ones in which the joined columns match. When a row in the left table has no matching rows in the right table, the associated result set row contains null values for all select list columns coming from the right table.

RIGHT JOIN or RIGHT OUTER JOIN.
A right outer join is the reverse of a left outer join. All rows from the right table are returned. Null values are returned for the left table any time a right table row has no matching row in the left table.
FULL JOIN or FULL OUTER JOIN. 
A full outer join returns all rows in both the left and right tables. Any time a row has no match in the other table, the select list columns from the other table contain null values. When there is a match between the tables, the entire result set row contains data values from the base tables.
Cross joins. 
Cross joins return all rows from the left table, each row from the left table is combined with all rows from the right table. Cross joins are also called Cartesian products.
For example:
A right outer join will select all records from the second table, and any records in the first table that match the joined keys.
Let's say table1 has the following primary key and data pairs: (1, a), (2, b), (3, c)
Let's also say that table2 has the following primary key and data pairs: (1, fun), (3, can), (4, happen)
So an inner join of table1 to table2 on the primary keys would yield the following resulting triplets (with the common primary key first, the first table's second item second and the second table's second item third): (1, a, fun), (3, c, can)
A left outer join of table1 to table2 on the primary keys would yield the following resulting triplets (same format as above): (1, a, fun), (2, b, NULL), (3, c, can)
A right outer join of table1 to table2 on the primary keys would yield the following resulting triplets (same format as above): (1, a, fun), (3, c, can), (4, NULL, happen)
The inner join shows the users, which have one or more telephone(s) together with their telephone number(s).
The left outer join additionally list those 'users' which have no telephone.

No comments:

Post a Comment