FirebirdSQL predicate EXISTS

dalam firebird, ada yang namanya peryataan predikat yaitu "exists".
fungsinya untuk memastikan apakah hasil subquery terdapat paling tidak satu record atau lebih.

jadi misalnya kamu punya database yang saling berelasi, tapi tidak punya foreign keys (seperti cascade). lalu didalamnya terdapat 2 tabel, yaitu "kategori" dan "produk".

kategori
k_idkate
2udara
5darat
6laut
produk
h_idk_idhewan
175kambing
195keledai
216paus
9999naga

lalu kamu ingin mencari kategori yang tidak produk, maka ...
select a.*
from kategori a
where not exists (
  select b.*
  from produk b
  where b.k_id = a.k_id
)

atau mencari produk yang tidak punya kategori ...
select a.*
from produk a
where not exists (
  select b.*
  from kategori b
  where b.k_id = a.k_id
)

untuk sebaliknya, tinggal ganti "where not exists" dengan "where exists".
termasuk hapus, cukup ganti "select ..." dengan "delete".

Komentar

Postingan populer dari blog ini

Bagian-bagian Browser

kebiasaan menghapus kontak

Cara Build PHP 7.4.0alpha1 Dari Source Code Pada Ubuntu 16.04 LTS

Referensi "Ni No Kuni: Cross Worlds"