Εντόπισε ένα ύπουλο σφάλμα NULL και παράκαμψέ το
Το ερώτημα «βρες πελάτες που δεν έχουν παραγγελίες» διατυπωμένο με NOT IN κρύβει ένα άσχημο σφάλμα: αν το υποερώτημα περιέχει έστω και μία γραμμή NULL, ολόκληρο το NOT IN επιστρέφει σιωπηλά μηδέν γραμμές — χωρίς σφάλμα, χωρίς προειδοποίηση. Μια κλασική παγίδα της τρίτιμης λογικής στην SQL.
Το ασφαλές ισοδύναμο είναι το NOT EXISTS: επιστρέφει μια γραμμή όταν το εσωτερικό ερώτημα δεν βρήκε τίποτα, και είναι άτρωτο στα NULL. Ξαναγράψε τον έλεγχο «πελάτες χωρίς παραγγελίες» χρησιμοποιώντας NOT EXISTS, ώστε το ερώτημα να λειτουργεί σωστά ακόμη και με NULL στα δεδομένα. Δείξε το id και το email αυτών των πελατών, ταξινόμησε κατά id.
Δείγμα αναμενόμενης εξόδου
Έτσι μοιάζει μια σωστή απάντηση — το πλήθος γραμμών της είναι δικό της, δεν χρειάζεται να ταιριάζει με τους πίνακες του σχήματος.
| id | |
|---|---|
| 3 | новый@email |
Συνδεθείτε για να δείτε το ιστορικό υποβολών
ΣύνδεσηΣυνδεθείτε για να χρησιμοποιήσετε τον AI Mentor
Σύνδεση