Module 5: Joining
Multiple Tables
Overview
Using Aliases for Table Names
Combining Data from Multiple Tables
Combining Multiple Result Sets
Using Aliases for Table Names
Example 1 (without an alias name)
USE joindb
SELECT buyer_name, sales.buyer_id, qty
FROM buyers INNER JOIN sales
ON buyers.buyer_id = sales.buyer_id
GO
Example 2 (with an alias name)
USE joindb
SELECT buyer_name, s.buyer_id, qty
FROM buyers AS b INNER JOIN sales AS s
ON b.buyer_id = s.buyer_id
GO
Combining Data from Multiple
Tables
Introduction to Joins
Using Inner Joins
Using Outer Joins
Using Cross Joins
Joining More Than Two Tables
Joining a Table to Itself
Introduction to Joins
Selects Specific Columns from Multiple
Tables
JOIN keyword specifies that tables are
joined and how to join them
ON keyword specifies join condition
Queries Two or More Tables to
Produce a Result Set
Use primary and foreign keys as join
conditions
Use columns common to specified tables
to join tables
Using Inner Joins
USE joindb
SELECT buyer_name, sales.buyer_id, qty
FROM buyers INNER JOIN sales Example 1
ON buyers.buyer_id = sales.buyer_id
GO
buyers sales
buyer_name buyer_id buyer_id prod_id qty
Adam Barr 1 1 2 15
Sean Chai 2 1 3 5
Eva Corets 3 4 1 37
Erin O’Melia 4 3 5 11
4 2 1003
Result
buyer_name buyer_id qty
Adam Barr 1 15
Adam Barr 1 5
Erin O’Melia 4 37
Eva Corets 3 11
Erin O’Melia 4 1003
Using Outer Joins
USE joindb
SELECT buyer_name, sales.buyer_id, qty
FROM buyers LEFT OUTER JOIN sales Example 1
ON buyers.buyer_id = sales.buyer_id
GO
buyers sales
buyer_name buyer_id buyer_id prod_id qty
Adam Barr 1 1 2 15
Sean Chai 2 1 3 5
Eva Corets 3 4 1 37
Erin O’Melia 4 3 5 11
Result 4 2 1003
buyer_name buyer_id qty
Adam Barr 1 15
Adam Barr 1 5
Erin O’Melia 4 37
Eva Corets 3 11
Erin O’Melia 4 1003
Sean Chai NULL NULL
Using Cross Joins
USE joindb
SELECT buyer_name, qty
FROM buyers Example 1
CROSS JOIN sales
GO
buyers sales Result
buyer_id buyer_name buyer_id prod_id qty buyer_name qty
1 Adam Barr 1 2 15 Adam Barr 15
2 Sean Chai 1 3 5 Adam Barr 5
3 Eva Corets 4 1 37 Adam Barr 37
4 Erin O’Melia 3 5 11 Adam Barr 11
4 2 1003 Adam Barr 1003
Sean Chai 15
Sean Chai 5
Sean Chai 37
Sean Chai 11
Sean Chai 1003
Eva Corets 15
... ...
Joining More Than Two Tables
SELECT buyer_name, prod_name, qty
FROM buyers
INNER JOIN sales
ON buyers.buyer_id = sales.buyer_id Example 1
INNER JOIN produce
ON sales.prod_id = produce.prod_id
GO
buyers sales produce
buyer_id buyer_name buyer_id prod_id qty prod_id prod_name
1 Adam Barr 1 2 15 1 Apples
2 Sean Chai 1 3 5 2 Pears
3 Eva Corets 3 1 37 3 Oranges
4 Erin O’Melia 4 5 11 4 Bananas
2 2 1003 5 Peaches
Result
buyer_name prod_name qty
Erin O’Melia Apples 37
Adam Barr Pears 15
Erin O’Melia Pears 1003
Adam Barr Oranges 5
Eva Corets Peaches 11
Joining a Table to Itself
USE joindb
SELECT a.buyer_id AS buyer1, a.prod_id
,b.buyer_id AS buyer2
FROM sales AS a Example 3
JOIN sales AS b
ON a.prod_id = b.prod_id
WHERE a.buyer_id > b.buyer_id
GO
sales a sales b
buyer_id prod_id qty buyer_id prod_id qty
1 2 15 1 2 15
1 3 5 1 3 5
4 1 37 4 1 37
3 5 11 3 5 11
4 2 1003 4 2 1003
Result
buyer1 prod_id buyer2
4 2 1
Combining Multiple Result Sets
Use the UNION Operator to Create a
Single Result Set from Multiple
Queries
Each Query Must Have:
Similar data types
Same number of columns
Same column order in select list
USE northwind
SELECT (firstname + ' ' + lastname) AS name
,city, postalcode
FROM employees
UNION
SELECT companyname, city, postalcode
FROM customers
GO
Recommended Practices
Join Tables on Primary and Foreign Keys
Reference All Columns of Composite Primary Key in the
Clause When Composite Key Relates Tables
Limit the Number of Tables in a Join
Lab A: Querying Multiple Tables
Review
Using Aliases for Table Names
Combining Data from Multiple Tables
Combining Multiple Result Sets