Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menampilkan Baris Tidak Ada di Tabel Lain di MySQL

Terkadang Anda mungkin perlu menemukan baris yang tidak ada di tabel lain atau memilih baris yang tidak ada di tabel lain. Pada artikel ini, kita akan melihat cara menampilkan baris yang tidak ada di tabel lain di MySQL, menggunakan klausa NOT EXISTS.


klausa MySQL NOT EXISTS

MySQL menyediakan klausa EXISTS, UNION dan NOT EXISTS yang membantu Anda melakukan operasi SET dengan tabel MySQL. Dengan operasi SET, maksud kami adalah Anda dapat memperlakukan tabel MySQL &hasil kueri sebagai kumpulan matematika dan memilih baris yang ada di kedua tabel, atau hanya salah satu tabel. Untuk artikel kami, kami akan menggunakan klausa NOT EXISTS.


Cara Menampilkan Baris yang Tidak Ada di Tabel Lain

Berikut adalah langkah-langkah untuk menemukan baris yang tidak ada di tabel lain. Katakanlah Anda memiliki dua tabel penjualan(id, tanggal_pesanan, jumlah) dan pesanan(id, tanggal_pesanan, jumlah)

mysql> create table sales(id int, order_date date, amount int);

mysql> insert into sales(id, order_date, amount)
      values(1, '2021-01-24',250),
      (2, '2021-01-25',250),
      (3, '2021-01-26',250),
      (4, '2021-01-27',250),
      (5, '2021-01-28',250),
      (6, '2021-01-29',250),
      (7, '2021-01-30',250),
      (8, '2021-01-31',250),
      (9, '2021-02-01',250);

mysql> select * from sales;
 +------+------------+--------+
 | id   | order_date | amount |
 +------+------------+--------+
 |    1 | 2021-01-24 |    250 |
 |    2 | 2021-01-25 |    250 |
 |    3 | 2021-01-26 |    250 |
 |    4 | 2021-01-27 |    250 |
 |    5 | 2021-01-28 |    250 |
 |    6 | 2021-01-29 |    250 |
 |    7 | 2021-01-30 |    250 |
 |    8 | 2021-01-31 |    250 |
 |    9 | 2021-02-01 |    250 |
 +------+------------+--------+

mysql> create table orders(id int, order_date date, amount int);

mysql> insert into orders(id, order_date, amount)
      values(5, '2021-01-28',250),
      (6, '2021-01-29',250),
      (7, '2021-01-30',250),
      (8, '2021-01-31',250),
      (9, '2021-02-01',250);

mysql> select * from orders;
 +------+------------+--------+
 | id   | order_date | amount |
 +------+------------+--------+
 |    5 | 2021-01-28 |    250 |
 |    6 | 2021-01-29 |    250 |
 |    7 | 2021-01-30 |    250 |
 |    8 | 2021-01-31 |    250 |
 |    9 | 2021-02-01 |    250 |
 +------+------------+--------+

Berikut adalah kueri SQL untuk memilih data dari penjualan tabel yang tidak ada dalam pesanan tabel.

mysql> SELECT *
       FROM sales D
       WHERE NOT EXISTS(SELECT * FROM orders c
                       WHERE D.order_date = C.order_date);
 +------+------------+--------+
 | id   | order_date | amount |
 +------+------------+--------+
 |    1 | 2021-01-24 |    250 |
 |    2 | 2021-01-25 |    250 |
 |    3 | 2021-01-26 |    250 |
 |    4 | 2021-01-27 |    250 |
 +------+------------+--------+

Dalam kueri di atas, kami menggunakan klausa NOT EXISTS untuk memilih baris dari penjualan tabel yang tidak ada dalam pesanan tabel, yang dipilih menggunakan subquery. Di subkueri, kami hanya memilih baris tersebut dari pesanan tabel yang tanggal_pesanan sama seperti di penjualan tabel.

Butuh alat pelaporan untuk MySQL? Ubiq memudahkan untuk memvisualisasikan data dalam hitungan menit, dan memantau di dasbor waktu nyata. Cobalah Hari ini!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menginstal MySQL di macOS

  2. CURRENT_DATE Contoh – MySQL

  3. SQL Query Untuk Menghapus Database Di MySQL

  4. Mengambil baris tunggal, kolom tunggal dengan PDO

  5. Contoh CURRENT_TIME – MySQL