Pada artikel ini, kita akan mempelajari konsep INNER JOIN dan cara menggunakannya dalam SQL dengan klausa WHERE.
Apa itu INNER JOIN di SQL?
Inner Join adalah jenis join dalam SQL. Inner Join di SQL adalah gabungan yang banyak digunakan. Gabung ini hanya mengembalikan baris-baris yang umum di kedua tabel. Inner join digunakan untuk menggabungkan dua tabel.
Sintaks Inner Join di SQL:
SELECT table1.columname1, table1.columnname2, table2.columnname1, table2.columnname2 FROM TABLE1 INNER JOIN TABLE2 ON table1.column = table2.column;
Table1.column =table2.column adalah kolom umum yang memelihara hubungan parent-child antara dua tabel ini.
Ada beberapa langkah yang harus kita gunakan dalam Inner Join dalam query SQL:
1. Buat database baru atau gunakan database yang sudah ada dengan memilih database menggunakan kata kunci USE diikuti dengan nama database.
2. Buat tabel baru di dalam database yang dipilih, atau Anda dapat menggunakan tabel yang sudah dibuat.
3. Jika tabel baru dibuat, masukkan record dalam database yang baru dibuat menggunakan query INSERT.
4. Lihat data yang dimasukkan menggunakan kueri SELECT tanpa kueri Gabung Dalam.
5 Sekarang, kita siap untuk menggunakan Inner Join dalam query SQL.
Langkah 1:Buat database baru atau gunakan database yang sudah dibuat.
Saya sudah membuat database. Saya akan menggunakan nama database yang sudah saya buat, Perusahaan.
USE Company;
Perusahaan adalah nama database.
Bagi yang belum membuat database, ikuti query di bawah ini untuk membuat database:
CREATE DATABASE database_name;
Setelah membuat database, pilih database menggunakan kata kunci USE diikuti dengan nama database.
Langkah 2:Buat tabel baru atau gunakan tabel yang sudah ada:
Saya sudah membuat tabel. Saya akan menggunakan tabel yang ada bernama Karyawan dan Manajer saat kami menjalankan kueri Gabung Dalam.
Untuk membuat tabel baru, ikuti sintaks CREATE TABLE di bawah ini:
CREATE TABLE table_name(
columnname1 datatype(column size),
columnname2 datatype(column size),
columnname3 datatype(column size)
);
Langkah 3:Sisipkan catatan di tabel yang baru dibuat menggunakan kueri INSERT
Gunakan sintaks di bawah ini untuk menyisipkan catatan baru ke dalam tabel:
INSERT INTO table_name VALUES(value1, value2, value3);
Langkah 4: Melihat catatan menggunakan kueri SELECT.
Lihat catatan dari tabel menggunakan sintaks berikut:
SELECT * FROM table_name;
Kueri berikut akan menampilkan catatan Karyawan.
SELECT * FROM Employees;
Output dari query SELECT di atas adalah:
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | BAIK | 60500 | MUMBAI | UJI | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGRWAL | 60000 | DELHI | ORACLE | 1 |
5001 | ARKIT | SHARMA | 55500 | DELHI | UJI | 4 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |
6001 | RAHUL | NIKAM | 54500 | BANGALORE | UJI | 4 |
6002 | ATIS | JADHAV | 60500 | BANGALORE | C# | 5 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACLE | 1 |
Kueri berikut akan menampilkan catatan Manajer.
SELECT * FROM Manager;
Output dari query SELECT di atas adalah:
Pengelola | nama_manajer | manajer_departemen |
1 | Snehdeep Kaur | ORACLE |
2 | Kirti Kirtane | FMW |
3 | Abhishek Manish | JAVA |
4 | Anupam Mishra | UJI |
5 | Akash Kadam | C# |
Kueri berikut akan menampilkan catatan Laptop.
SELECT * FROM Laptop;
Output dari query SELECT di atas adalah:
LAPTOPID | NAMA | KARYAWAN |
101 | DELL | NULL |
102 | HP | 1002 |
103 | LENOVO | NULL |
104 | HP | 3003 |
105 | DELL | 4002 |
106 | LENOVO | 4003 |
107 | DELL | 5001 |
108 | HP | NULL |
109 | DELL | NULL |
110 | HP | NULL |
111 | LENOVO | 2002 |
112 | LENOVO | 6003 |
113 | HP | 1003 |
Langkah 5:Kami siap menggunakan INNER JOIN dalam kueri
Mari kita pahami Inner Join dengan bantuan contoh.
Contoh 1: Tulis query untuk menampilkan id karyawan, nama depan, nama belakang, gaji, kota dari tabel karyawan, dan id manajer dan nama manajer dari tabel manajer menggunakan Inner join.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, E.CITY, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID;
Dalam kueri di atas, kami telah mengambil id karyawan, nama depan, nama belakang, gaji, kota dari tabel karyawan dan id manajer, nama manajer dari tabel manajer di mana kolom id manajer tabel karyawan sama dengan kolom id manajer tabel manajer. Kueri akan mengembalikan semua catatan kecocokan dari kedua tabel. Id manajer adalah kolom umum di antara kedua tabel. E adalah nama alias untuk tabel karyawan, sedangkan M untuk tabel manager. Kolom id manajer berfungsi sebagai kunci asing di tabel karyawan. ID pengelola berfungsi sebagai kunci utama dalam tabel pengelola, yang membuat hubungan induk-anak antara kedua tabel.
Output dari query di atas adalah:
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
4003 | RUCHIKA | AGRWAL | 60000 | DELHI | ORACLE | 1 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACLE | 1 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
4001 | RAJESH | BAIK | 60500 | MUMBAI | UJI | 4 |
5001 | ARKIT | SHARMA | 55500 | DELHI | UJI | 4 |
6001 | RAHUL | NIKAM | 54500 | BANGALORE | UJI | 4 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | C# | 5 |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |
6002 | ATIS | JADHAV | 60500 | BANGALORE | C# | 5 |
Catatan ditampilkan dalam urutan menaik dengan id pengelola default.
Contoh 2: Tulis kueri untuk menampilkan id karyawan, nama depan, nama belakang, kota, dan departemen dari tabel karyawan dan id manajer dan nama manajer dari tabel manajer menggunakan Inner Join di mana departemen karyawan adalah C#.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.CITY, E.DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE DEPARTMENT = ‘C#’;
Dalam kueri di atas, kami telah mengambil id karyawan, nama depan, nama belakang, kota, dan departemen dari tabel karyawan, id manajer, dan nama manajer dari tabel manajer di mana id manajer dari tabel karyawan sama dengan id manajer dari tabel manajer saja catatan karyawan yang departemen karyawannya adalah C#.
Keluaran dari kueri di atas adalah:
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
2003 | RUCHIKA | JAIN | 50.000 | MUMBAI | C# | 5 |
5003 | ROSHAN | NEHTE | 48500 | CHANDIGARH | C# | 5 |
6002 | ATIS | JADHAV | 60500 | BANGALORE | C# | 5 |
Pada output di atas, kita dapat melihat hanya record yang diambil dari karyawan yang departemennya adalah C#. Kami menggunakan klausa WHERE dengan INNER join.
Contoh 3: Tulis query untuk menampilkan id karyawan, nama depan, gaji, kota, dan departemen dari tabel karyawan, dan id laptop dan nama laptop dari tabel laptop menggunakan Inner Join.
SELECT E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY, E.DEPARTMENT, L.LAPTOPID, L.NAME FROM EMPLOYEES E INNER JOIN LAPTOP L ON E.EMPLOYEEID = L.EMPLOYEEID;
Dalam kueri di atas, kami telah mengambil id karyawan, nama depan, gaji, kota, dan departemen dari tabel karyawan, dan id laptop, dan nama dari tabel laptop di mana id karyawan dari tabel karyawan sama dengan id karyawan dari meja laptop . ID Karyawan adalah kunci asing di tabel Laptop, yang membuat hubungan induk-anak antara tabel Karyawan dan tabel Laptop.
Keluaran dari kueri di atas adalah:
KARYAWAN | FIRST_NAME | GAJI | KOTA | DEPARTEMEN | LAPTOPID | NAMA |
1002 | VAIBHAV | 60000 | NOIDA | C# | 102 | HP |
3003 | DEEPAM | 58500 | MUMBAI | JAVA | 104 | HP |
4002 | ASHWINI | 54500 | NOIDA | JAVA | 105 | DELL |
4003 | RUCHIKA | 60000 | DELHI | ORACLE | 106 | LENOVO |
5001 | ARKIT | 55500 | DELHI | UJI | 107 | DELL |
2002 | BHAVESH | 65500 | PUNE | FMW | 111 | LENOVO |
6003 | NIKITA | 65000 | HYDERABAD | ORACLE | 112 | LENOVO |
1003 | NIKHIL | 50500 | JAIPUR | FMW | 113 | HP |
Hanya catatan tersebut yang ditampilkan dalam output yang diberikan kepada siapa Laptop ditugaskan.
Contoh 4: Tulis kueri untuk menampilkan id karyawan, nama depan, gaji, dan departemen dari tabel karyawan, dan ID manajer dan nama manajer dari tabel manajer menggunakan gabungan dalam di mana gaji> 57000 atau departemen adalah Oracle.
SELECT EMPLOYEEID, FIRST_NAME, SALARY, DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID = M.MANAGERID WHERE SALARY > 57000 OR DEPARTMENT = 'ORACLE';
Dalam kueri di atas, kami telah mengambil id karyawan, nama depan, gaji, dan departemen dari tabel karyawan, dan id manajer dan nama manajer dari tabel manajer di mana id manajer dari tabel karyawan sama dengan id manajer dari manajer hanya karyawan yang gaji lebih besar dari 57000 atau Departemen adalah Oracle.
Keluaran dari kueri di atas adalah:
KARYAWAN | FIRST_NAME | LAST_NAME | GAJI | KOTA | DEPARTEMEN | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE | 1 |
4003 | RUCHIKA | AGRWAL | 60000 | DELHI | ORACLE | 1 |
6003 | NIKITA | INGALE | 65000 | HYDERABAD | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
5002 | SANKET | CHAUHAN | 70000 | HYDERABAD | JAVA | 3 |
4001 | RAJESH | BAIK | 60500 | MUMBAI | UJI | 4 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
6002 | ATIS | JADHAV | 60500 | BANGALORE | C# | 5 |
Dalam output di atas, hanya catatan karyawan yang ditampilkan yang gajinya lebih besar dari 57000 atau departemen karyawan adalah 'Oracle'. Operator OR menampilkan catatan jika salah satu kondisi yang diberikan dalam kueri benar.