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!

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

19 Responses

  1. Mungalim Col says:

    Terimakasih Om atas postinganya sangat mbantu tugas Kampus saya

  2. RPL4rt says:

    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?

    • Panah Biru says:

      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

  3. Guest says:

    ini pictnya gan, mohon dibantu secepatnya.. πŸ˜€

    thx

  4. eko says:

    permisi gan apakah saya bisa bertanya…

    • Panah Biru says:

      silakan Kang…

      • eko says:

        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…

  5. Uli says:

    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.

  6. agus says:

    like this . thanks

  7. Boncel says:

    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

  8. Fani achmadi says:

    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…

    • Ifhtul Emka says:

      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?

  9. jasmine says:

    Sangat membantu thnx

Leave a Reply to Luthfi Emka Cancel reply

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

%d bloggers like this: