Sobes.tech
Middle

Πώς εργάζεσαι με 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 αν δεν υπάρχουν παραγγελίες.