Sobes.tech
Middle

Scrieți o interogare SQL: există un tabel de clienți (clients) și un tabel de listă neagră (blacklist) cu un câmp id. Trebuie să selectați toți clienții care nu sunt pe lista neagră. Propuneți mai multe soluții.

sobes.tech AI

Răspuns de la AI

Pentru a selecta clienții care nu sunt pe lista neagră, se pot folosi mai multe variante de interogări SQL:

  1. Utilizarea LEFT JOIN cu verificare pentru NULL:
SELECT c.*
FROM clients c
LEFT JOIN blacklist b ON c.id = b.id
WHERE b.id IS NULL;
  1. Utilizarea NOT IN:
SELECT *
FROM clients
WHERE id NOT IN (SELECT id FROM blacklist);
  1. Utilizarea NOT EXISTS:
SELECT *
FROM clients c
WHERE NOT EXISTS (
  SELECT 1 FROM blacklist b WHERE b.id = c.id
);

Fiecare dintre aceste variante are propriile caracteristici de performanță, în funcție de sistemul de gestionare a bazelor de date și volumul de date.