Sobes.tech
Middle

Γράψτε ένα ερώτημα SQL: υπάρχει ένας πίνακας πελατών (clients) και ένας πίνακας μαύρης λίστας (blacklist) με ένα πεδίο id. Πρέπει να επιλέξετε όλους τους πελάτες που δεν είναι στη μαύρη λίστα. Προτείνετε διάφορες λύσεις.

sobes.tech AI

Απάντηση από AI

Για την επιλογή πελατών που δεν βρίσκονται στη μαύρη λίστα, μπορούν να χρησιμοποιηθούν διάφορες επιλογές ερωτημάτων SQL:

  1. Χρήση LEFT JOIN με έλεγχο για NULL:
SELECT c.*
FROM clients c
LEFT JOIN blacklist b ON c.id = b.id
WHERE b.id IS NULL;
  1. Χρήση NOT IN:
SELECT *
FROM clients
WHERE id NOT IN (SELECT id FROM blacklist);
  1. Χρήση NOT EXISTS:
SELECT *
FROM clients c
WHERE NOT EXISTS (
  SELECT 1 FROM blacklist b WHERE b.id = c.id
);

Κάθε μία από αυτές τις επιλογές έχει τα δικά της χαρακτηριστικά απόδοσης, ανάλογα με το σύστημα διαχείρισης βάσεων δεδομένων και τον όγκο δεδομένων.