Chapter 12 Joining Tables Part C. SQL Copyright 2005 Radian Publishing Co.

Post on 31-Mar-2015

225 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

Transcript

Chapter 12 Joining Tables

Part C. SQL

Copyright 2005 Radian Publishing Co.

Copyright 2005 Radian Publishing Co.2/27

Contents

Chapter 12 Joining Tables

12.1 Business Applications

12.2 Set Operations

• 12.2 A. Union

• 12.2 B. Intersect

• 12.2 C. Minus

12.3 Other Types of JOIN

• 12.3 A. Cross-join

• 12.3 B. Outer-join

• 12.3 C. Simulating MINUS by Outer-Join

• 12.3 D. Joining to Oneself

• 12.3 E. Bus Routes Using Joining to Oneself

Copyright 2005 Radian Publishing Co.3/27

Chapter 12 Joining Tables

Table joining gathers data from more than one table when retrieving

data from a database.

Join condition may be placed in JOIN clause. It can also be an

inequality.

Copyright 2005 Radian Publishing Co.4/27

12.1 Business Applications

The basic syntax of inner join is:

SELECT …FROM TableName1, TableName2 WHERE JoinCondition [AND FilterCondition]

The filter condition must be written after the join condition.

An alternative syntax for inner-join is:

SELECT ...FROM TableName1INNER JOIN TableName2 ON JoinConditionWHERE FilterCondition

Copyright 2005 Radian Publishing Co.5/27

12.2 Set Operations (1/3)

A join combines tables by columns.

Fig.12.7 Joining tables by columns

Copyright 2005 Radian Publishing Co.6/27

12.2 Set Operations (2/3)

Combining tables by rows requires the original tables to have

compatible structures.

Fig.12.8 Joining tables by rows

Copyright 2005 Radian Publishing Co.7/27

12.2 Set Operations (3/3)

We shall discuss three mathematical set operations:

• UNION• INTERSECT• MINUS

Fig.12.9 The three set operations

Copyright 2005 Radian Publishing Co.8/27

12.2 A. Union (1/2)

UNION simply groups the records of two tables together. Duplicated

rows are removed. If duplicated rows are necessary, use UNION ALL.

Syntax for UNION:

SELECT … FROM TableA

UNION

SELECT … FROM TableB

Copyright 2005 Radian Publishing Co.9/27

12.2 A. Union (2/2)

Copyright 2005 Radian Publishing Co.10/27

12.2 B. Intersect (1/2)

INTERSECT selects records which are common to both tables.

Syntax for INTERSECT:

SELECT … FROM TableAINTERSECTSELECT … FROM TableB

Copyright 2005 Radian Publishing Co.11/27

12.2 B. Intersect (2/2)

Copyright 2005 Radian Publishing Co.12/27

12.2 C. Minus

MINUS selects records which are found in one set but not on the other.

Syntax for MINUS:

SELECT … FROM TableAMINUSSELECT … FROM TableB

Copyright 2005 Radian Publishing Co.13/27

12.3 Other Types of JOIN (1/2)

Fig.12.19 All possibletable combination

Copyright 2005 Radian Publishing Co.14/27

12.3 Other Types of JOIN (2/2)

A cross-join is a join without any join condition.

Joins with a join condition are divided into inner-joins and outer-joins.

An inner-join consists of records matching the join conditions. Inner-

joins are further classified into equi-joins and non-equi-joins.

An equi-join uses the equal operator (=) in the join condition.

A non-equi-join uses relational operators, >, <, >=, <=, <>.

A natural join is an equi-join without duplicating columns.

Copyright 2005 Radian Publishing Co.15/27

12.3 A. Cross-join (1/3)

A cross-join is a join without any join condition. It will map every record

in one table with every record in the other table.

Fig.12.20 Cross-joining Table A and Table B

Copyright 2005 Radian Publishing Co.16/27

12.3 A. Cross-join (2/3)

Copyright 2005 Radian Publishing Co.17/27

12.3 A. Cross-join (3/3)

Qualifiers are used to remove ambiguity, where two tables have the

same column name.

Both join condition and filter condition can exist in the WHERE clause.

Copyright 2005 Radian Publishing Co.18/27

12.3 B. Outer-join (1/6)

An outer-join selects both matched and non-matched records.

It is further classified into left-outer-joins, right-outer-joins and full-outer-

joins.

Copyright 2005 Radian Publishing Co.19/27

12.3 B. Outer-join (2/6)

A left-outer-join selects all the rows from the first table including those

match and those do not match the rows in the second table.

The syntax for a left-outer-join is

SELECT ...

FROM TableName1

LEFT OUTER JOIN TableName2

ON JoinCondition

Copyright 2005 Radian Publishing Co.20/27

12.3 B. Outer-join (3/6)

Copyright 2005 Radian Publishing Co.21/27

12.3 B. Outer-join (4/6)

A right-outer-join selects all the rows from the second table including

those match and those do not match the rows in the first table.

Syntax for right-outer-join:

SELECT ...

FROM TableName1

RIGHT OUTER JOIN TableName2

ON JoinCondition

Copyright 2005 Radian Publishing Co.22/27

12.3 B. Outer-join (5/6)

Copyright 2005 Radian Publishing Co.23/27

12.3 B. Outer-join (6/6)

A full-outer-join reveals unmatched records on both sides as well as the matched records.

Syntax for full-outer-join:

SELECT ...

FROM TableName1

FULL OUTER JOIN TableName2

ON JoinCondition

Copyright 2005 Radian Publishing Co.24/27

12.3 C. Simulating MINUS by Outer-Join

Refer to textbook P.286

Copyright 2005 Radian Publishing Co.25/27

12.3 D. Joining to Oneself (1/2)

Joining a table to itself means writing the same table name twice in

FROM clause of the SQL statement.

Copyright 2005 Radian Publishing Co.26/27

12.3 D. Joining to Oneself (2/2)

Copyright 2005 Radian Publishing Co.27/27

12.3 E. Bus Routes Using Joining to Oneself

Refer to textbook P.289

top related