JOIN Perintah Join digunakan untuk menggabungkan 2 atau lebih tabel dengan syarat tabel yang digabungkan memiliki field yang sama.
INNER JOIN Inner join digunakan untuk menggabungkan dua atau lebih tabel yang dijadikan sebagai referensi join memiliki nilai yang sama pada tabel sebelah kiri dan pada tabel sebelah kanan. Sintaks : SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
INNER JOIN Tabel Persons Tabel Orders P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 3 Pettersen Kari Storgt 20 Stavanger Tabel Orders O_Id OrderNo P_Id 1 77895 3 2 44678 22456 4 24562 5 34764 15
INNER JOIN Menampilkan LastName, FirstName dan No Order dari kedua tabel diatas. Jawab : SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName
Contoh Tampilkan OrderNo untuk pelanggan yang memiliki FirstName = Tari
Join menggunakan Tabel Alias Menyederhanakan query dengan menggunakan tabel alias Contoh SELECT p.LastName, p.FirstName, o.OrderNo FROM Persons p INNER JOIN Orders o ON p.P_Id=o.P_Id ORDER BY p.LastName
LEFT JOIN Left join digunakan untuk menggabungkan dua atau lebih tabel dimana field yang digunakan sebagai referensi pada tabel sebelah kiri akan tetap ditampilkan walaupun tidak ada dalam tabel sebelah kanan. Sintaks SELECT field_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.field_name=table_name2.field_name
Customer Order P_Id LastName FirstName Address City 1 Hansen Ola Timoteivn 10 Sandnes 2 Svendson Tove Borgvn 23 3 Pettersen Kari Storgt 20 Stavanger Order O_Id OrderNo P_Id 1 77895 3 2 44678 22456 4 24562 5 34764 15
Tampilkan semua nama pelanggan dan no ordernya. Query : SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName LastName FirstName OrderNo Hansen Ola 22456 24562 Pettersen Kari 77895 44678 Svendson Tove
RIGHT JOIN Rightjoin digunakan untuk menggabungkan dua atau lebih tabel dimana semua field yang ada pada tabel sebalah kanan akan ditampilkan walapun tidak memiliki nilai yang sama dengan referensi yang ada dalam tabel sebelah kiri. Sintaks SELECT field_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.field_name=table_name2.field_name
Tampilkan semua order dari customer berikut nama customernya. Query : SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons RIGHT JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName LastName FirstName OrderNo Hansen Ola 22456 24562 Pettersen Kari 77895 44678 34764
FULL JOIN menampilkan semua data dari dua tabel yang dihubungkan meskipun terdapat data yang tidak memiliki pasangan di tabel lainnya Sintaks SELECT field_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.field_name=table_name2.field_name
Menampilkan semua customer dengan ordernya dan semua order dengan customernya. SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName LastName FirstName OrderNo Hansen Ola 22456 24562 Pettersen Kari 77895 44678 Svendson Tove 34764
UNION Operator UNION digunakan untuk menggabung dua buah tabel. Sintaks : SELECT column_name(s) FROM table_name1 UNION [ALL] SELECT column_name(s) FROM table_name2 Perhatikan : dalam kedua statement select, harus memiliki jumlah dan tipe data kolom yang sama. Urutan kolom juga harus sama.
Contoh Employees_Norway Employees_USA E_ID E_Name 01 Hansen, Ola 02 Svendson, Tove 03 Svendson, Stephen 04 Pettersen, Kari Employees_USA E_ID E_Name 01 Turner, Sally 02 Kent, Clark 03 Svendson, Stephen 04 Scott, Stephen
Menampilkan semua pegawai di Norway dan USA SELECT E_Name FROM Employees_Norway UNION SELECT E_Name FROM Employees_USA E_Name Hansen, Ola Svendson, Tove Svendson, Stephen Pettersen, Kari Turner, Sally Kent, Clark Scott, Stephen
SELECT E_Name FROM Employees_Norway UNION ALL SELECT E_Name FROM Employees_USA Hansen, Ola Svendson, Tove Svendson, Stephen Pettersen, Kari Turner, Sally Kent, Clark Scott, Stephen
GROUP BY Statement group by digunakan untuk mengelompokan data/hasil dari perintah grup fungsi. Sintaks : SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
Contoh Tampilkan total orderprice untuk masing-masing customer O_Id OrderDate OrderPrice Customer 1 2008/11/12 1000 Hansen 2 2008/10/23 1600 Nilsen 3 2008/09/02 700 4 2008/09/03 300 5 2008/08/30 2000 Jensen 6 2008/10/04 100 Tampilkan total orderprice untuk masing-masing customer
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer Hansen 2000 Nilsen 1700 Jensen
Having Statement having digunakan untuk membatasi hasil query yang dihasilkan oleh statement Group By Sintaks : SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value
Tampilan nama customer yang total ordernya dibawah 2000 SELECT Customer, SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000 Customer SUM(OrderPrice) Nilsen 1700