Sobes.tech
Junior

Τι είναι η αριστερή σύνδεση (left join) σε SQL;

sobes.tech AI

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

Η αριστερή ένωση (LEFT JOIN ή LEFT OUTER JOIN) σε SQL χρησιμοποιείται για τη συνένωση γραμμών από δύο πίνακες.

Το αποτέλεσμα του LEFT JOIN περιλαμβάνει:

  • Όλες τις γραμμές από τον αριστερό (πρώτο) πίνακα.
  • Τις αντίστοιχες γραμμές από τον δεξιό (δεύτερο) πίνακα, όπου πληρούται η συνθήκη σύνδεσης.
  • Για τις γραμμές του αριστερού πίνακα που δεν έχουν αντίστοιχο στη δεξιά, οι στήλες του δεξιού πίνακα θα περιέχουν τιμές NULL.

Παράδειγμα σύνταξης:

SELECT <λίστα_στηλών>
FROM <αριστερός_πίνακας> AS L
LEFT JOIN <δεξιός_πίνακας> AS R ON L.<στήλη_σύνδεσης> = R.<στήλη_σύνδεσης>;

Τρόπος λειτουργίας:

Κάθε γραμμή του αριστερού πίνακα εξετάζεται. Για κάθε γραμμή, αναζητούνται αντιστοιχίες στον δεξιό πίνακα βάσει της συνθήκης ON.

  • Αν βρεθούν αντιστοιχίες, η γραμμή του αριστερού πίνακα συνδυάζεται με όλες τις αντίστοιχες γραμμές του δεξιού πίνακα.
  • Αν δεν βρεθούν αντιστοιχίες, η γραμμή του αριστερού πίνακα περιλαμβάνεται στο αποτέλεσμα, και οι στήλες του δεξιού πίνακα γεμίζουν με NULL.

Οπτική αναπαράσταση:

Φανταστείτε δύο σύνολα δεδομένων: Left (αριστερός πίνακας) και Right (δεξιός πίνακας). Το LEFT JOIN επιστρέφει όλα τα στοιχεία του Left, καθώς και εκείνα του Right που έχουν αντιστοιχία στο Left. Αν στο Left υπάρχουν στοιχεία χωρίς αντιστοιχία στο Right, αυτά τα στοιχεία του Left θα συμπεριληφθούν στο αποτέλεσμα, αλλά τα αντίστοιχα πεδία του Right θα είναι κενά (NULL).

Σύγκριση με άλλους τύπους JOIN:

Τύπος JOIN Περιγραφή
INNER JOIN Επιστρέφει μόνο τις γραμμές όπου υπάρχει αντιστοιχία και στους δύο πίνακες.
LEFT JOIN Επιστρέφει όλες τις γραμμές από τον αριστερό πίνακα και τις αντίστοιχες από τον δεξιό. NULL για τις γραμμές χωρίς αντιστοιχία στον δεξιό.
RIGHT JOIN Επιστρέφει όλες τις γραμμές από τον δεξιό πίνακα και τις αντίστοιχες από τον αριστερό. NULL για τις γραμμές χωρίς αντιστοιχία στον αριστερό.
FULL OUTER JOIN Επιστρέφει όλες τις γραμμές που έχουν αντιστοιχία σε οποιονδήποτε από τους πίνακες. NULL για τις γραμμές χωρίς αντιστοιχία και στους δύο πίνακες.

Έτσι, το LEFT JOIN είναι χρήσιμο όταν θέλετε να λάβετε μια πλήρη λίστα εγγραφών από έναν πίνακα και να τις συμπληρώσετε με πληροφορίες από έναν άλλο πίνακα, ακόμα και αν δεν υπάρχουν αντιστοιχίες για όλες τις εγγραφές.