Sobes.tech
Middle

Napišite SQL upit: postoji tabela klijenata (clients) i tabela crne liste (blacklist) sa poljem id. Treba da izaberete sve klijente koji nisu na crnoj listi. Predložite nekoliko rešenja.

sobes.tech АИ

Одговор од АИ

Za izbor klijenata koji nisu na crnoj listi, može se koristiti nekoliko opcija SQL upita:

  1. Korišćenje LEFT JOIN sa proverom na NULL:
SELECT c.*
FROM clients c
LEFT JOIN blacklist b ON c.id = b.id
WHERE b.id IS NULL;
  1. Korišćenje NOT IN:
SELECT *
FROM clients
WHERE id NOT IN (SELECT id FROM blacklist);
  1. Korišćenje NOT EXISTS:
SELECT *
FROM clients c
WHERE NOT EXISTS (
  SELECT 1 FROM blacklist b WHERE b.id = c.id
);

Svaka od ovih opcija ima svoje karakteristike u pogledu performansi, u zavisnosti od sistema za upravljanje bazom podataka i obima podataka.