Home > Uncategorized > Menghindari Record Kembar dengan Distinct

Menghindari Record Kembar dengan Distinct

Berhubung ini ada pertanyaan dari salah satu teman murid bimbingan, jadinya harus nulis disini deh biar semuanya bisa membaca dan belajar 🙂
Ehm..bingung neh mau ngasih pendahuluannya seperti apa. Biar lebih jelasnya, yuk langsung praktek aja 🙂

Misalnya kita buat Database dan Tabel baru. Berikut log-nya:
[sql]mysql> create database guru; use guru;
Query OK, 1 row affected (0.02 sec)

Database changed
mysql> create table profilguru(
-> id int(2) auto_increment primary key,
-> nama varchar(50) not null,
-> matpel varchar(30) not null
-> );
Query OK, 0 rows affected (0.13 sec)[/sql]

[sql]mysql> desc profilguru;
+——–+————-+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+——–+————-+——+—–+———+—————-+
| id | int(2) | NO | PRI | NULL | auto_increment |
| nama | varchar(50) | NO | | NULL | |
| matpel | varchar(30) | NO | | NULL | |
+——–+————-+——+—–+———+—————-+
3 rows in set (0.01 sec)[/sql]

Oke, jadi table diatas untuk menampung profil guru di sekolah, tapi dibuat lebih simpel saja. Hanya ada kolom id, nama dan mata pelajaran yang dibawanya. Lalu, masalahnya dimana? Oh nanti dulu dunk :p

Yuk kita lanjut dengan menginput record-nya. Berikut log-nya:
[sql]mysql> insert into profilguru values(”,’Aa Ezha’,’PHP’);
Query OK, 1 row affected, 1 warning (0.07 sec)

mysql> insert into profilguru values(”,’Aa Ezha’,’B.Arab’);
Query OK, 1 row affected, 1 warning (0.02 sec)

mysql> insert into profilguru values(”,’Uwi van Ilmi’,’English’);
Query OK, 1 row affected, 1 warning (0.04 sec)

mysql> insert into profilguru values(”,’Uba Ler’,’Networking’);
Query OK, 1 row affected, 1 warning (0.03 sec)

mysql> insert into profilguru values(”,’Deni Mikrocpu’,’Networking’);
Query OK, 1 row affected, 1 warning (0.04 sec)

mysql> insert into profilguru values(”,’Deni Mikrocpu’,’Visual Basic’);
Query OK, 1 row affected, 1 warning (0.04 sec)[/sql]

Oke, disana terlihat ada beberapa “guru” yang mengajar lebih dari 1 mata pelajaran.
Lalu masalahnya adalah, ketika kita ingin memunculkan daftar-daftar guru yang mengajar.
Berikut contohnya:
[sql]mysql> select nama from profilguru;
+—————+
| nama |
+—————+
| Aa Ezha |
| Aa Ezha |
| Uwi van Ilmi |
| Uba Ler |
| Deni Mikrocpu |
| Deni Mikrocpu |
+—————+
6 rows in set (0.00 sec)[/sql]

Nah, lihat kan disana jadi namanya dobel-dobel begitu 😀
Padahal kita kan pengennya..1 guru ya 1kali tampil.
Terus, gimana dunk menanggulangi agar recordnya tidak dobel, mengulang atau kembar?
Begini neh jadinya 🙂
[sql]mysql> select distinct nama from profilguru;
+—————+
| nama |
+—————+
| Aa Ezha |
| Uwi van Ilmi |
| Uba Ler |
| Deni Mikrocpu |
+—————+
4 rows in set (0.00 sec)[/sql]

Yups, hanya ditambahkan query DISTINCT saja setelah SELECT.

Jadi fungsi dari query DISTINCT adalah mencegah suatu record yang sama untuk muncul lebih dari 1 kali. Terlihat jelas bedanya ketika menjalankan query SELECT tanpa DISTINCT, bukan?

Ehm..mungkin sekian dulu tutorial pendeknya 🙂
Semoga bermanfaat untuk semuanya.

Terima kasih untuk beberapa temanku yang telah bersedia tanpa diminta tuk jadi model di artikel ini 🙂
Uba Ler: [Facebook] [Blog]
Deni Mikrocpu: [Facebook]
Uwi van Ilmi: [Facebook] [Blog]

Categories: Uncategorized
  1. 14 October 2020 at 09:22

    Das ist bekanntlich großartig, Danke schön! Dies hat
    mir gefallen und ist sehr bemerkenswert. Die Geistesblitzefinde ich plausibel.
    Jene Geistesblitze sind mir genauso schon durch das Haupt gegangen.
    Denn ich beachte, dass dies obendrein zum Besten von meinen Bücherwürmern ein interessantes Anliegen scheint.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: