Cara menggunakan penggunaan not pada mysql

Pada kesempatan posting artikel kali ini admin akan menguraikan beberapa contoh penggunaan fungsi NOT IN() dan IN() pada MySQL Database. Untuk fungsi script perintah query ini hampir sama cara kerjanya dengan fungsi NOT EXISTS() dan EXISTS. Langsung saja masuk ke pembahasan. 

NOT IN()

Ada 2 tabel pada kesempatan kali ini yaitu tabel barang dan stok dengan menggunakan primaryKey idbarang. Untuk tabel stok

mysql> select * from stok limit 15;
+---------------+--------------------------+--------+
| IDBARANG      | NMBARANG                 | JUMBRG |
+---------------+--------------------------+--------+
| 0001          | SAMPOERNA MILD 16 BATANG |    228 |
| 1111234555    | U MILD 16                |      5 |
| 8998989300087 | GG MILD                  |     17 |
| 8999909096004 | SAMPOERNA MILD 16        |     62 |
| 76164217      | MALBORO RED 20           |     26 |
| P             | PERMEN SEMUA JENIS ISI 5 |     27 |
| 95508788      | MALBORO BLACK MENTOL20   |      3 |
| 8995078803078 | U MILD 16                |     21 |
| 8999909982000 | A MILD 12                |     67 |
| 8999909010567 |  DJI SAM SOE 16          |     38 |
| 8999909001909 | SAM SOE MAGNUM           |     16 |
| 8999909000346 | U BOLD                   |     30 |
| 8999909000377 | AVOLUTION RED 20         |     94 |
| 0050          | KARTON SEMUA JENIS       |     50 |
| 8999909028234 | SAMSOE 12                |      8 |
+---------------+--------------------------+--------+
15 rows in set (0.00 sec)

Dan untuk tabel barang


mysql> select * from barang limit 15;
+---------------+--------------------------+--------+
| IDBARANG      | NMBARANG                 | JUMBRG |
+---------------+--------------------------+--------+
| 0001          | SAMPOERNA MILD 16 BATANG |     30 |
| 0001          | SAMPOERNA MILD 16 BATANG |    100 |
| 0001          | SAMPOERNA MILD 16 BATANG |    100 |
| 1111234555    | U MILD 16                |     10 |
| 8998989300087 | GG MILD                  |     10 |
| 8999909096004 | SAMPOERNA MILD 16        |    100 |
| 76164217      | MALBORO RED 20           |     10 |
| 8999909000483 | AVOLUTION MENTOL 20      |     10 |
| 95508788      | MALBORO BLACK MENTOL20   |     10 |
| 8995078803078 | U MILD 16                |     15 |
| 8999909982000 | A MILD 12                |     10 |
| 8999909010567 |  DJI SAM SOE 16          |     10 |
| 8999909001909 | SAM SOE MAGNUM           |     10 |
| 8999909000346 | U BOLD                   |     20 |
| 8999909000377 | AVOLUTION RED 20         |     10 |
+---------------+--------------------------+--------+
15 rows in set (0.00 sec)

Sekarang kita akan mencoba menampilkan data pada barang dimana data barang yang tidak ada pada data stok dengan berpatokan tabel barang

mysql> select * from barang where idbarang not in(select idbarang from stok) limit 15;
+---------------+----------------------------------+--------+
| IDBARANG      | NMBARANG                         | JUMBRG |
+---------------+----------------------------------+--------+
| AART          | AL-AZKA ROTI TAWAR               |      2 |
| 8992759184006 | JOLLY TISSU K                    |    150 |
| ASJ           | ALAMIN SUPER JUMBO               |      6 |
| 8992756333377 | BIR ANKER STOUT620ML             |     20 |
| 8998667400924 | MINYAK TELON PLUS KONICARE 30ML  |      2 |
| 8992775311998 | CHOCOLATOS GRANDE ISI 20PCS      |      3 |
| 8992745320135 | STELLA GANTUNG SENSATION NATURAL |      6 |
| 8999999049423 | REXONA MEN SPORT DEFENCE ROLL ON |      3 |
| 8886467100260 | PRINGLES ORI 42G                 |      3 |
| 8886467100017 | PRINGLES ORI 110G                |      3 |
| 8992761164560 | NUTRIBOOST APEL                  |     12 |
| 8992759184006 | JOLLY TISSU K                    |      0 |
| 0049          | KARET GELANG PAK TANI            |      0 |
| 0051          | KARTU GAPLE KALAJENGKING         |      0 |
| 0052          | KCG BAWANG LPG SLTN              |      0 |
+---------------+----------------------------------+--------+
15 rows in set (0.02 sec)

Hasil dari script NOT IN pada 2 tabel barang dan stok seperti diatas.

IN()

Masih menggunakan 2 tabel diatas sekarang coba menampilkan data dengan struktur tabel barang sebagai patokan dimana data pada tabel barang berada juga pada tabel stok

mysql> select * from barang where idbarang in(select idbarang from stok) limit 15;

+---------------+--------------------------+--------+

| IDBARANG      | NMBARANG                 | JUMBRG |

+---------------+--------------------------+--------+

| 0001          | SAMPOERNA MILD 16 BATANG |     30 |

| 0001          | SAMPOERNA MILD 16 BATANG |    100 |

| 0001          | SAMPOERNA MILD 16 BATANG |    100 |

| 1111234555    | U MILD 16                |     10 |

| 8998989300087 | GG MILD                  |     10 |

| 8999909096004 | SAMPOERNA MILD 16        |    100 |

| 76164217      | MALBORO RED 20           |     10 |

| 8999909000483 | AVOLUTION MENTOL 20      |     10 |

| 95508788      | MALBORO BLACK MENTOL20   |     10 |

| 8995078803078 | U MILD 16                |     15 |

| 8999909982000 | A MILD 12                |     10 |

| 8999909010567 |  DJI SAM SOE 16          |     10 |

| 8999909001909 | SAM SOE MAGNUM           |     10 |

| 8999909000346 | U BOLD                   |     20 |

| 8999909000377 | AVOLUTION RED 20         |     10 |

+---------------+--------------------------+--------+

15 rows in set (0.00 sec)

Sangat mudah bukan, dengan script ringkas diatas kita dapat memilah-milah atau memvalidasi data adri kedua tabel tersebut. Semoga bermanfaat