Tutorial Bassic Mysql Bagian 2 - Inner, Left, Right, Cross Join

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Tutorial Bassic Mysql Bagian 2 - Inner, Left, Right, Cross Join

Pada tutorial sebelumnya kita telah belajar tentang bassic Mysql bagian 1, tentang Create Read Update Delete.

SQL merupakan salah satu bahasa program yang wajib dikuasai oleh developer, ini seperti sebuah persyaratan yang harus di kuasai apalagi jika Anda ingin menjadi Backend Developer.

Dibagian ke-2 Bassic Mysql kita akan belajar tentang Inner Join, Left Join, Right Join, Cross Join. Perhatikan table berikut :

bassic mysql bagian 2 join dan inner-join bassic mysql bagian 2 join dan inner-join

Dari gambar diatas kita punya dua table, yaitu table CUSTOMERS dan SALES_ORDER. Sebelum kita membahas lebih jauh tentang berbagai tipe join di Mysql, persiapkan data dan tablenya

A) Persiapkan Table dan Data


1) Create table

CREATE TABLE `customers` (
`id` bigint NOT NULL AUTO_INCREMENT,
`customer_number` varchar(15) NOT NULL,
`name` varchar(255) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)

CREATE TABLE `sales_order` (
`order_id` varchar(5) NOT NULL,
`partner_id` int NOT NULL,
`item_id` int NOT NULL,
`item_quantity` int NOT NULL,
`total_selling_price` int NOT NULL,
`sales_channel` varchar(3) NOT NULL,
`order_date` varchar(9) NOT NULL,
`customer_id` int NOT NULL
)

2) Insert Data Customers

INSERT INTO example.customers (customer_number,name,created_at,updated_at,deleted_at) VALUES
('1001','Bob Martin','2021-06-18 14:45:44','2021-06-18 14:45:44',NULL),
('1002','Linus Trovald','2021-06-18 14:45:44','2021-06-18 14:45:44',NULL);

3) Insert Data Sales Order

 

INSERT INTO tutorial.sales_order (order_id,partner_id,item_id,item_quantity,total_selling_price,sales_channel,order_date,customer_id) VALUES
('A0001',1,1001,1,100,'AAA','1-Jan-17',1),
('A0002',1,1005,2,20,'BBB','11-Jan-17',2),
('A0002',1,1003,4,120,'BBB','11-Jan-17',3),
('A0002',1,1001,2,200,'BBB','11-Jan-17',3),
('A0003',2,1002,1,80,'AAA','3-Mar-17',2),
('A0003',2,1008,6,75,'AAA','3-Mar-17',4),
('A0005',1,1001,1,100,'AAA','15-Apr-17',4),
('A0006',2,1003,5,150,'AAA','1-Jun-17',4),
('A0007',3,1001,2,200,'BBB','21-Jun-17',2),
('A0007',3,1005,1,10,'BBB','21-Jun-17',5);
INSERT INTO tutorial.sales_order (order_id,partner_id,item_id,item_quantity,total_selling_price,sales_channel,order_date,customer_id) VALUES
('A0007',3,1004,9,60,'BBB','21-Jun-17',3);

 

B) Berbagai Perintah Join


1) INNER JOIN

INNER JOIN merupakan penggabungan antara dua table atau lebih dengan menggunakan keyword yang yang sama.

Berikut ini format penggunaan query INNER JOIN:

SELECT
select_list
FROM t1
INNER JOIN t2 ON join_condition1
INNER JOIN t3 ON join_condition2
...;

2) RIGHT JOIN

Jika pada inner join menampilkan semua data dalam dua tabel atau lebih yang beririsan, maka pada right join ini tabel yang ditampilkan adalah semua tabel di bagian kanan dan tabel bagian kiri mencocokkan pada tabel bagian kanan.

Dalam hal ini, tabel bagian kanan akan tampil secara keseluruhan, dan jika tabel bagian kiri ada yang tidak cocok dengan tabel bagian kanan akan menampilkan tulisan "NULL"

Berikut ini format penggunaan query RIGHT JOIN:

SELECT 
select_list
FROM
t1
RIGHT JOIN t2 ON
join_condition;

3) LEFT JOIN

Jenis fungsi left join ini kebalikan dari fungsi right join. Pada left join tabel yang ditampilkan adalah semua tabel di bagian kiri dan tabel bagian kanan mencocokkan pada tabel bagian kiri.

Dalam hal ini, tabel bagian kiri akan tampil secara keseluruhan, dan jika tabel bagian kanan ada yang tidak cocok dengan tabel bagian kiri maka akan menampilkan tulisan "NULL".

Berikut ini format penggunaan query LEFT JOIN:

SELECT 
select_list
FROM
t1
LEFT JOIN t2 ON
join_condition;

4) CROSS JOIN

CROSS JOIN menghasilkan himpunan yang mana jumlah baris dalam tabel pertama dikalikan dengan jumlah baris dalam tabel kedua jika tidak ada klausa WHERE digunakan bersama dengan CROSS JOIN.

Berikut ini format penggunaan query CROSS JOIN:

SELECT * FROM t1
CROSS JOIN t2;

Cross Join dengan kondisi:

SELECT * FROM t1
CROSS JOIN t2
WHERE t1.id = t2.id;

C) Video Tutorial


Video :

Githubhttps://github.com/halovina/bassic-mysql/tree/bassic-mysql-bagian2

Baca artikel lainya:


  1. Membuat service OTP bagian 1 - OTP dan PIN

  2. Membuat service OTP bagian 2 - Sequence Diagram

  3. Membuat service OTP bagian 3 - Model dan Serializer

  4. Membuat  service OTP bagian 4 - Validate OTP

  5. Membuat  service OTP bagian 5 - Api Client Service

  6. Membuat service user login bagian 1 - Konfigurasi Database

  7. Membuat service user login bagian 2 - Serializer dan JWT

  8. Membuat CRUD service product bagian 1 - Models Product

  9. Membuat CRUD service product bagian 2 - Function Serializer

  10. Membuat CRUD service product bagian 3 - Api Client Service

  11. Membaut CRUD service product bagian 4 - Auth User

  12. Membuat CRUD service product bagian 5 - TDR File Log

  13. Membuat CRUD service product bagian 6 - Unit Test

  14. Membuat service user register bagian 1 - Django

  15. Membuat Service user register bagian 2 - Django

  16. Membuat service filter dan download file CSV di django

  17. Django upload file menggunakan FileSystemStorage

  18. Tips meningkatkan kualitas code pada bahasa python

  19. Cara memfilter tipe data string pada golang dan python

  20. Mengubah format datetime pada bahasa python

  21. Mengolah data CSV dengan python pandas

  22. Sample join data CSV di python menggunakan pandas

  23. Menggunakan redis PUB/SUB untuk aplikasi python

  24. Implementasi blockchain ethereum pada industri real estate

  25. 4 Cara mengubah dictionary ke json pada python