Middle
Ποιοι τύποι JOIN υπάρχουν στο SQL και ποια είναι οι διαφορές μεταξύ LEFT JOIN, RIGHT JOIN και INNER JOIN;
sobes.tech AI
Απάντηση από AI
Στο SQL υπάρχουν διάφοροι τύποι JOIN που επιτρέπουν τον συνδυασμό γραμμών από δύο πίνακες βάσει μιας συγκεκριμένης συνθήκης:
- INNER JOIN — επιστρέφει μόνο τις γραμμές που έχουν αντιστοιχίσεις και στους δύο πίνακες.
- LEFT JOIN (LEFT OUTER JOIN) — επιστρέφει όλες τις γραμμές από τον αριστερό πίνακα και τις αντίστοιχες γραμμές από τον δεξιό. Αν δεν υπάρχουν αντιστοιχίσεις, τα πεδία του δεξιού πίνακα θα είναι NULL.
- RIGHT JOIN (RIGHT OUTER JOIN) — το αντίθετο, επιστρέφει όλες τις γραμμές από τον δεξιό πίνακα και τις αντίστοιχες από τον αριστερό, με NULL όπου δεν υπάρχουν αντιστοιχίσεις.
Παράδειγμα:
Πίνακας A:
| id | όνομα |
|---|---|
| 1 | Alice |
| 2 | Bob |
Πίνακας B:
| id | πόλη |
|---|---|
| 1 | Λονδίνο |
| 3 | Βερολίνο |
- INNER JOIN με βάση το id θα επιστρέψει μόνο id=1 (Alice και Λονδίνο).
- LEFT JOIN θα επιστρέψει:
- id=1 (Alice, Λονδίνο)
- id=2 (Bob, NULL)
- RIGHT JOIN θα επιστρέψει:
- id=1 (Alice, Λονδίνο)
- id=3 (NULL, Βερολίνο)
Έτσι, τα LEFT και RIGHT JOIN διατηρούν όλες τις γραμμές από έναν από τους πίνακες και τις συμπληρώνουν με δεδομένα από τον άλλο, ενώ το INNER JOIN διατηρεί μόνο τις αντιστοιχίσεις.