Middle
Ποια είναι η διαφορά μεταξύ LEFT JOIN και INNER JOIN;
sobes.tech AI
Απάντηση από AI
INNER JOIN επιστρέφει μόνο τις γραμμές που έχουν αντίστοιχες τιμές και στις δύο πίνακες. Αν σε έναν από τους πίνακες δεν υπάρχει αντίστοιχη εγγραφή, η γραμμή αυτή δεν περιλαμβάνεται στο αποτέλεσμα.
LEFT JOIN (ή LEFT OUTER JOIN) επιστρέφει όλες τις γραμμές από τον αριστερό πίνακα και τις αντίστοιχες γραμμές από τον δεξιό. Αν δεν υπάρχει αντιστοιχία στον δεξιό πίνακα, τα πεδία του θα είναι NULL στο αποτέλεσμα.
Παράδειγμα:
SELECT A.id, B.value
FROM A
INNER JOIN B ON A.id = B.a_id;
-- Θα επιστρέψει μόνο τα id από τον A που έχουν αντίστοιχη εγγραφή στον B
SELECT A.id, B.value
FROM A
LEFT JOIN B ON A.id = B.a_id;
-- Θα επιστρέψει όλα τα id από τον A, και για εκείνα χωρίς αντιστοιχία στον B, το value θα είναι NULL