Πώς εργάζεσαι με SQL; Ποιες είναι οι διαφορές μεταξύ INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN;
sobes.tech AI
Απάντηση από AI
SQL JOIN — είναι μια λειτουργία συγχώνευσης δεδομένων από δύο πίνακες με βάση ένα συσχετισμένο πεδίο. Οι διαφορές μεταξύ των τύπων JOIN:
-
INNER JOIN — επιστρέφει μόνο τις εγγραφές που έχουν αντιστοιχίσεις και στους δύο πίνακες.
-
LEFT JOIN (LEFT OUTER JOIN) — επιστρέφει όλες τις εγγραφές από τον αριστερό πίνακα και τις αντίστοιχες από τον δεξιό; αν δεν υπάρχουν αντιστοιχίσεις, τα πεδία στη δεξιά πλευρά θα είναι NULL.
-
RIGHT JOIN (RIGHT OUTER JOIN) — το αντίθετο, επιστρέφει όλες τις εγγραφές από τον δεξιό πίνακα και τις αντίστοιχες από τον αριστερό; αν δεν υπάρχουν αντιστοιχίσεις, τα πεδία στην αριστερή πλευρά θα είναι NULL.
-
FULL OUTER JOIN — επιστρέφει όλες τις εγγραφές και από τους δύο πίνακες; αν δεν υπάρχουν αντιστοιχίσεις, τα αντίστοιχα πεδία θα είναι NULL.
Παράδειγμα:
SELECT A.id, A.name, B.order_date
FROM Customers A
LEFT JOIN Orders B ON A.id = B.customer_id;
Αυτή η ερώτηση θα επιστρέψει όλους τους πελάτες με τις παραγγελίες τους, αν υπάρχουν, ή NULL στο πεδίο order_date αν δεν υπάρχουν παραγγελίες.