Joining Tables PDF
Joining Tables PDF
Joining Tables PDF
Database Design
Muhammad Rudyanto Arief
rudy@amikom.ac.id
Objectives
§ After completing this lesson, you should be able to do the
following:
§ Write SELECT statements to access data from more than one table using
equijoins and non- equijoins
§ Join a table to itself by using a self-join
§ View data that generally does not meet a join condition by using outer
joins
§ Generate a Cartesian product of all rows from two or more tables
Obtaining Data from Multiple Tables
EMPLOYEES DEPARTMENTS
…
Types of Joins
Joins that are compliant with the SQL:1999 standard
include the following:
§ Cross joins
§ Inner join atau Natural joins
§ USING clause
§ Full (or two-sided) outer joins
§ Arbitrary join conditions for outer joins
Cross Join
§ Menggabungkan semua record dari tabel pertama dengan semua
record di tabel kedua.
§ Banyaknya record dari cross join = jumlah record tabel pertama X
jumlah record tabel kedua
§ Contoh:
§ SELECT *
FROM mahasiswa CROSS JOIN dosen;
§ SELECT *
FROM mahasiswa, dosen;
Inner Join
§ Menghubungkan 2 (atau lebih) tabel berdasarkan atribut
penghubung.
§ Metode 1:
§ SELECT *
FROM mahasiswa INNER JOIN dosen
USING (nik);
§ Metode 2:
§ SELECT *
FROM mahasiswa INNER JOIN dosen ON mahasiswa.nik = dosen.nik;
Inner Join (lanjutan 1)
§ Metode 3:
§ SELECT * FROM mahasiswa NATURAL INNER JOIN dosen;
§ Metode 4 (paling kompatibel):
§ SELECT * FROM mahasiswa, dosen
WHERE mahasiswa.nik = dosen.nik;
§ Perhatian: Untuk INNER JOIN, Anda dapat menghilangkan kata
‘INNER’. Jadi, cukup dengan kata ‘JOIN’ saja.
Inner Join (lanjutan 2)
§ Dengan metode 4, jika kolom yang ingin ditampilkan ada di lebih dari
2 tabel, maka Anda harus menentukan tabel mana yang diinginkan.
§ Contoh:
§ SELECT dosen.nik, nama_mhs, nik FROM mahasiswa, dosen
WHERE mahasiswa.nik = dosen.nik;
Joining Tables Using SQL:1999 Syntax
Use a join to query data from more than one table:
…
Self-Joins Using the ON Clause
EMPLOYEES (WORKER) EMPLOYEES (MANAGER)
… …
…
Applying Additional Conditions to a Join
Creating Three-Way Joins with the ON Clause
…
Non-Equijoins
EMPLOYEES JOB_GRADES
…
Outer Joins
DEPARTMENTS EMPLOYEES
…
RIGHT OUTER JOIN
SELECT e.last_name, e.department_id, d.department_name
FROM employees e RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id) ;
…
FULL OUTER JOIN
SELECT e.last_name, d.department_id, d.department_name
FROM employees e FULL OUTER JOIN departments d
ON (e.department_id = d.department_id) ;
…
Cartesian Products
§ A Cartesian product is formed when:
o A join condition is omitted
o A join condition is invalid
o All rows in the first table are joined to all rows in the
second table
§ To avoid a Cartesian product, always include a valid join
condition.
Generating a Cartesian Product
EMPLOYEES (20 rows) DEPARTMENTS (8 rows)
Cartesian product:
20 x 8 = 160 rows
…
Creating Cross Joins
§ The CROSS JOIN clause produces the cross-
product of two tables.
§ This is also called a Cartesian product between the
two tables. SELECT last_name, department_name
FROM employees
CROSS JOIN departments ;
…
Summary
In this lesson, you should have learned how to use
joins to display data from multiple tables by using:
§ Equijoins
§ Non-equijoins
§ Outer joins
§ Self-joins
§ Cross joins
§ Natural joins
§ Full (or two-sided) outer joins