Sobes.tech
Junior

Πώς λειτουργεί το SQL Join;

sobes.tech AI

Απάντηση από AI

Η JOIN σε SQL συνδυάζει γραμμές από δύο ή περισσότερους πίνακες βάσει μιας σχετικής στήλης μεταξύ τους. Υπάρχουν διάφοροι τύποι JOIN:

  • INNER JOIN: Επιστρέφει γραμμές όπου υπάρχουν ταιριάσματα τιμών και στους δύο πίνακες.
  • LEFT (OUTER) JOIN: Επιστρέφει όλες τις γραμμές από τον αριστερό πίνακα και τις ταιριαστές γραμμές από τον δεξιό. Αν δεν υπάρχει ταιριάσμα στον δεξιό πίνακα, επιστρέφονται τιμές NULL για τις στήλες του δεξιού πίνακα.
  • RIGHT (OUTER) JOIN: Επιστρέφει όλες τις γραμμές από τον δεξιό πίνακα και τις ταιριαστές γραμμές από τον αριστερό. Αν δεν υπάρχει ταιριάσμα στον αριστερό πίνακα, επιστρέφονται τιμές NULL για τις στήλες του αριστερού πίνακα.
  • FULL (OUTER) JOIN: Επιστρέφει όλες τις γραμμές και από τους δύο πίνακες. Αν δεν υπάρχει ταιριάσμα, επιστρέφονται τιμές NULL για τις αντίστοιχες στήλες.
  • CROSS JOIN: Επιστρέφει το καρτεσιανό προϊόν των δύο πινάκων (κάθε γραμμή από τον πρώτο πίνακα συνδυάζεται με κάθε γραμμή από τον δεύτερο).

Η σύνταξη συνήθως φαίνεται έτσι:

SELECT στήλη1, στήλη2...
FROM πίνακας1
JOIN πίνακας2 ON πίνακας1.κοινή_στήλη = πίνακας2.κοινή_στήλη;

Παράδειγμα INNER JOIN:

SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

Ας δούμε τους πίνακες customers και orders:

customers

customer_id customer_name
1 Alice
2 Bob
3 Charlie

orders

order_id customer_id amount
101 1 100
102 2 150
103 1 200
104 4 50

Το αποτέλεσμα του INNER JOIN θα είναι:

order_id customer_name
101 Alice
102 Bob
103 Alice

Το αποτέλεσμα του LEFT JOIN (orders LEFT JOIN customers):

order_id customer_id amount customer_name
101 1 100 Alice
102 2 150 Bob
103 1 200 Alice
104 4 50 NULL