Sobes.tech
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 διατηρεί μόνο τις αντιστοιχίσεις.