Sobes.tech
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