Junior — Middle
Ποια είναι η διαφορά μεταξύ χρήσης INNER JOIN και OUTER JOIN σε SQL κατά τη σύνδεση πινάκων;
sobes.tech AI
Απάντηση από AI
INNER JOIN επιστρέφει μόνο τις γραμμές που έχουν αντιστοιχίσεις και στις δύο πίνακες σύμφωνα με την συνθήκη σύνδεσης. Αν σε έναν από τους πίνακες δεν υπάρχει αντίστοιχη εγγραφή, η γραμμή δεν περιλαμβάνεται στο αποτέλεσμα.
OUTER JOIN (LEFT, RIGHT ή FULL) επιστρέφει όλες τις γραμμές από έναν ή και τους δύο πίνακες, συμπεριλαμβανομένων αυτών χωρίς αντιστοιχίσεις. Σε αυτές τις περιπτώσεις, οι ελλείπουσες τιμές συμπληρώνονται με NULL.
Παράδειγμα:
-- INNER JOIN: μόνο αντιστοιχισμένες εγγραφές
SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- LEFT OUTER JOIN: όλοι οι χρήστες, ακόμα και αυτοί χωρίς παραγγελίες
SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;