Junior — Middle
Εξηγήστε τη διαφορά μεταξύ INNER JOIN και OUTER JOIN σε SQL και σε ποιες περιπτώσεις χρησιμοποιείται ο καθένας.
sobes.tech AI
Απάντηση από AI
INNER JOIN επιστρέφει μόνο τις γραμμές που έχουν αντιστοιχίσεις και στις δύο πίνακες σύμφωνα με την συνθήκη σύνδεσης.
OUTER JOIN επιστρέφει όλες τις γραμμές από έναν πίνακα και τις αντίστοιχες γραμμές από τον άλλο. Αν δεν υπάρχουν αντιστοιχίσεις, οι κενές θέσεις θα είναι NULL.
Τύποι OUTER JOIN:
- LEFT OUTER JOIN — όλες οι γραμμές από τον αριστερό πίνακα + τις αντιστοιχούσες από τον δεξιό.
- RIGHT OUTER JOIN — όλες οι γραμμές από τον δεξιό πίνακα + τις αντιστοιχούσες από τον αριστερό.
- FULL OUTER JOIN — όλες οι γραμμές και από τους δύο πίνακες, με NULL όπου δεν υπάρχουν αντιστοιχίσεις.
Παράδειγμα χρήσης:
- INNER JOIN — όταν χρειάζονται μόνο σχετιζόμενα δεδομένα, π.χ. παραγγελίες με υφιστάμενους πελάτες.
- LEFT OUTER JOIN — όταν θέλετε να πάρετε όλους τους πελάτες, συμπεριλαμβανομένων αυτών χωρίς παραγγελίες.
Παράδειγμα SQL:
SELECT customers.name, orders.id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;
Αυτή η ερώτηση θα επιστρέψει όλους τους πελάτες και τις παραγγελίες τους, αν υπάρχουν, διαφορετικά NULL για τις παραγγελίες.