Query Pokok Bahasan Query Multi Table Join Query
Query
Pokok Bahasan • • Query Multi Table Join
Query Multi Table • • Query adalah kemampuan menampilkan data dengan cara mengambil dari tabel - tabel yang ada di database menggunakan perintah tertentu Dapat menggunakan sub query hasil kolom yang disediakan yang berasal dari tabel yang sama. Jika kolom hasil berasal dari lebih dari satu tabel harus menggunakan JOIN. Untuk melakukan JOIN, termasuk lebih dari satu tabel dalam klausa FROM, Gunakan koma sebagai pemisah dan biasanya mencakup klausa WHERE untuk menentukan bergabung kolom. Juga menungkinkan untuk menggunakan alias untuk nama tabel dalam klausa FROM. Alias dipisahkan dari nama tabel dengan spasi. Alias dapat digunakan untuk memenuhi syarat nama kolom ketika ada ambiguitas.
• Table Store_Information Store_Name Los Angeles San Diego Los Angeles Boston Sales 1500 250 300 700 • Table Geography Region_Name Store_Name East Boston East New York West Los Angeles West San Diego Txn_Date Jan-05 -1999 Jan-07 -1999 Jan-08 -1999
SQL JOIN
• Mencari Sales By Region • Di Tabel Geography ada Region_Name dan Store_Name • Di Tabel Store_Information ada Informasi dari Store_Name • Untuk mendapatkan informasi penjualan menurut Region, kita harus menggabungkan informasi dari dua tabel • Kedua Tabel tersebut berkaitan dengan Atribut Store_Name
Query Multi Table SELECT A 1. Region_Name REGION, SUM(A 2. Sales) SALES FROM Geography A 1, Store_Information A 2 WHERE A 1. Store_Name = A 2. Store_Name GROUP BY A 1. Region_Name; REGION SALES East 700 West 2050
Tanpa Alias SELECT Geography. Region_Name REGION, SUM(Store_Information. Sales) SALES Cara alternatif untuk menentukan join antara tabel adalah dengan menggunakan kata kunci JOIN dan ON.
• “REGION_NAME” dari Tabel Geography (alias sebagai REGION) • “Sales” dari Tabel Store_Information (alias sebagai SALES) • Geography dialiaskan sebagai A 1 • Store_Information dialiaskan sebagai A 2
SQL JOIN SELECT A 1. Region_Name REGION, SUM(A 2. Sales) SALES FROM Geography A 1 JOIN Store_Information A 2 ON A 1. Store_Name = A 2. Store_Name GROUP BY A 1. Region_Name; REGION SALES East 700 West 2050
INNER JOIN
• Kita ingin mengetahui penjualan oleh toko, dan kita hanya ingin melihat store_name dengan penjualan yang tercantum dalam laporan (Lihat kedua Tabel). Untuk melakukan hal ini, kita bisa menggunakan pernyataan SQL berikut menggunakan INNER JOIN:
• SELECT A 1. Store_Name STORE, SUM(A 2. Sales) SALES FROM Geography A 1 INNER JOIN Store_Information A 2 ON A 1. Store_Name = A 2. Store_Name GROUP BY A 1. Store_Name; STORE SALES Los Angeles 1800 San Diego 250 Boston 700
• Dengan menggunakan INNER JOIN, meskipun kita memilih dari Tabel Geography, yang memiliki 4 baris. Baris "New York" tidak dipilih karena tidak ada dalam Tabel Store_Information.
OUTER JOIN
• Kita ingin mengetahui jumlah penjualan untuk semua toko. Jika kita menggunakan regular join kita tidak akan bisa mendapatkan apa yang kita inginkan karena kita akan kehilangan "New York, " karena tidak muncul di tabel Store_Information.
LEFT OUTER JOIN
• Kita ingin mengetahui penjualan oleh toko, dan kita ingin melihat hasil untuk semua toko terlepas apakah ada yang dijual di Tabel Store_Information. Untuk melakukan hal ini, kita bisa menggunakan pernyataan SQL berikut menggunakan LEFT OUTER JOIN:
• SELECT A 1. Store_Name STORE, SUM(A 2. Sales) SALES FROM Geography A 1 LEFT OUTER JOIN Store_Information A 2 ON A 1. Store_Name = A 2. Store_Name GROUP BY A 1. Store_Name; STORE SALES Los Angeles 1800 San Diego 250 New York NULL Boston 700
• Dengan menggunakan LEFT OUTER JOIN, semua empat baris dalam Tabel Geography akan terdaftar. Karena tidak ada yang cocok untuk "New York" di Tabel Store_Information, total Sales untuk "New York" adalah NULL. Perhatikan bahwa NULL menunjukkan tidak ada relasi yang cocok.
- Slides: 20