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

windows 11 remove usb write-protected

Tutorial susah instalasi GeoServer di Windows

Bagian-bagian Browser

nyoblos perdana