Sobes.tech
Junior

Ποια είναι τα διαφορές μεταξύ LEFT JOIN και RIGHT JOIN σε SQL;

sobes.tech AI

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

LEFT JOIN επιστρέφει όλες τις γραμμές από τον αριστερό (πρώτο) πίνακα και τις αντίστοιχες γραμμές από τον δεξιό (δεύτερο) πίνακα. Αν δεν υπάρχουν αντιστοιχίσεις στον δεξιό πίνακα, το αποτέλεσμα περιέχει NULL για τις στήλες του δεξιού πίνακα.

RIGHT JOIN επιστρέφει όλες τις γραμμές από τον δεξιό (δεύτερο) πίνακα και τις αντίστοιχες γραμμές από τον αριστερό (πρώτο) πίνακα. Αν δεν υπάρχουν αντιστοιχίσεις στον αριστερό πίνακα, το αποτέλεσμα περιέχει NULL για τις στήλες του αριστερού πίνακα.

Η κύρια διαφορά είναι ποιος πίνακας θεωρείται "πλήρης", δηλαδή από ποιον πίνακα θα επιστραφούν όλες οι γραμμές ανεξάρτητα από το αν υπάρχουν αντιστοιχίσεις στον άλλο πίνακα.

Παράδειγμα σε SQL:

Πίνακας ΠίνακαςA:

ID ΤιμήA
1 A1
2 A2
3 A3

Πίνακας ΠίνακαςB:

ID ΤιμήB
2 B2
3 B3
4 B4

LEFT JOIN:

SELECT *
FROM ΠίνακαςA
LEFT JOIN ΠίνακαςB ON ΠίνακαςA.ID = ΠίνακαςB.ID;

Αποτέλεσμα LEFT JOIN:

ID (από ΠίνακαA) ΤιμήA ID (από ΠίνακαB) ΤιμήB
1 A1 NULL NULL
2 A2 2 B2
3 A3 3 B3

RIGHT JOIN:

SELECT *
FROM ΠίνακαςA
RIGHT JOIN ΠίνακαςB ON ΠίνακαςA.ID = ΠίνακαςB.ID;

Αποτέλεσμα RIGHT JOIN:

ID (από ΠίνακαA) ΤιμήA ID (από ΠίνακαB) ΤιμήB
2 A2 2 B2
3 A3 3 B3
NULL NULL 4 B4

Τα LEFT JOIN και RIGHT JOIN συχνά είναι εναλλάξιμα με την αλλαγή της σειράς των πινάκων στο ερώτημα: A LEFT JOIN B ισοδυναμεί με B RIGHT JOIN A.