Sobes.tech
Middle

Napište SQL dotaz: existuje tabulka klientů (clients) a tabulka černé listiny (blacklist) s polem id. Vyberte všechny klienty, kteří nejsou na černé listině. Navrhněte několik řešení.

sobes.tech AI

Odpověď od AI

Pro výběr klientů, kteří nejsou na černé listině, lze použít několik variant SQL dotazů:

  1. Použití LEFT JOIN s kontrolou na NULL:
SELECT c.*
FROM clients c
LEFT JOIN blacklist b ON c.id = b.id
WHERE b.id IS NULL;
  1. Použití NOT IN:
SELECT *
FROM clients
WHERE id NOT IN (SELECT id FROM blacklist);
  1. Použití NOT EXISTS:
SELECT *
FROM clients c
WHERE NOT EXISTS (
  SELECT 1 FROM blacklist b WHERE b.id = c.id
);

Každá z těchto možností má své specifické vlastnosti výkonu, záleží na systému správy databáze a objemu dat.