Belajar SQL: Select Data Di Tabel A Yang tidak Ada di Tabel B

Tips singkat berikut berisi query yang mungkin berguna bagi anda yang mencari query SQL yang digunakan untuk mencari data di tabel A yang tidak ada di tabel B. Contoh kasus, jika A adalah tabel master dan tabel B adalah tabel data isian, maka anda diminta untuk mencari data siapa yang belum mengisi. Sehingga logika yang dibangun adalah, select data ditabel A yang tidak ada di tabel B.

Sintaks yang dipakai adalah dengan sintaks NOT EXISTS. Contoh:

SELECT * FROM tabel_a WHERE NOT EXISTS (SELECT * FROM tabel_b)


Jika tabel_a dan tabel_b mempunyai primary key yang sama, pencarian akan lebih cepat dengan query:

SELECT * FROM tabel_a WHERE NOT EXISTS (SELECT * FROM tabel_b WHERE tabel_a.key = tabel_b.key)

Selamat mencoba!

19 thoughts on “Belajar SQL: Select Data Di Tabel A Yang tidak Ada di Tabel B

  1. kenapa ya punya saya malah null? -_-

    kalo pake ini

    SELECT dg.*
    FROM daftar_guru as dg, daftar_kelas as dk where not dg.id_guru = dk.id_guru GROUP BY dg.id_guru

    malah muncukl semua?

    1. ya seharusnya null, karena yang dg.id_guru = dk.id_guru tidak ada. tidak semua contoh query di posting ini applicable, bergantung skenarionya.

      saya rasa kalau ngikuti contoh query diatas bisa bener, mungkin salah kalo tabel A dan B nya yang terbalik

      1. oh makasih mas atas pencerahannya, udah bisa sih.. tapi pakai left join.. 😀
        nice and keep share.. 😀

      1. saya mau ambil data master dari mysql oracle tapi belum tau caranya…
        di download dari oraclenya pengaruh semunya jadi lemot dan membutuhkan waktu 7 hari…
        ada cara paling mudah ngk gan….

        kata temen saya chi pakai toad tapi ngk bisa pakeknya..

        tolong share y gan…

        1. Coba pake Navicat (navicat.com). Dia ga ngelock table waktu ngedump. Kalo pake Mac bisa coba Sequel Pro atau DBVisualizer

  2. Gan, kok hasilnya null?
    Ada 2 tabel PH1 dan PH2, sy ingin mencari isi tabel PH2 yang tidak ada di PH1, ilustrasinya seperti ini :
    Isi tabel PH1:
    — start —
    (no, nama, kota)
    1 Agung Jakarta
    2 Anang Bogor
    3 Ari Surabaya
    — end —
    Isi tabel PH2 :
    — start —
    (no, nama, kota)
    1 Agung Jakarta
    2 Anang Bogor
    3 Ari Surabaya
    4 Bandi Bandung
    5 Bonar Medan
    — end —
    Harusnya yang muncul :
    — start —
    (no, nama, kota)
    4 Bandi Bandung
    5 Bonar Medan
    — end —
    Masalah belum terpecahkan.

  3. siank gan
    kalau mau cari dalam satu table.. contoh kasus:jika z suda ada di table_a maka yang muncul” data ada”, jika z tidak di table_a maka yang muncul data “tidak ada”
    mohon masukanya gan… 🙁
    #pemula

  4. Gan saya mau tanya..saya di kantor ada table A dan table B.. kalau mngecek data table A tidak ada di table B dan sebalikx data table B tidak ada di table A gimna gan..tpi dalam 1 sintax…

    1. kayaknya sih gak mungkin kalau dalam satu query ya, kecuali tabel A dan B itu di merge. dari pertanyaanmu, tujuannya nyari data irisan di gabungan A dan B?

Leave a Reply to jasmine Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: