JOINS στον SQL Server: Εκμάθηση με παραδείγματα
Μπορούμε να ανακτήσουμε δεδομένα από περισσότερους από έναν πίνακες χρησιμοποιώντας την πρόταση JOIN. Υπάρχουν κυρίως 4 διαφορετικοί τύποι JOINS στον SQL server. Θα μάθουμε όλα τα JOINS Διακομιστής SQL με παραδείγματα:
- ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ/Απλή ένωση
- ΑΡΙΣΤΕΡΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ/ΑΡΙΣΤΕΡΑ ΣΥΝΔΕΣΗ
- ΔΕΞΙΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ/ΔΕΞΙΑ ΣΥΝΔΕΣΗ
- ΠΛΗΡΗΣ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ
ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ
Αυτός ο τύπος διακομιστή SQL JOIN επιστρέφει σειρές από όλους τους πίνακες στους οποίους η συνθήκη σύνδεσης είναι αληθής. Παίρνει την ακόλουθη σύνταξη:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Θα χρησιμοποιήσουμε τους παρακάτω δύο πίνακες για να το δείξουμε:
Πίνακας μαθητών:
Πίνακας τελών:
Η ακόλουθη εντολή δείχνει μια ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ σε διακομιστή SQL με παράδειγμα:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
Η εντολή επιστρέφει τα εξής:
Μπορούμε να πούμε στους μαθητές που έχουν πληρώσει τα δίδακτρα τους. Χρησιμοποιήσαμε τη στήλη με κοινές τιμές και στους δύο πίνακες, που είναι η στήλη αποδοχής.
ΑΡΙΣΤΕΡΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ
Αυτός ο τύπος ένωσης θα επιστρέψει όλες τις σειρές από τον αριστερό πίνακα συν τις εγγραφές στον δεξιό πίνακα με αντίστοιχες τιμές. Για παράδειγμα:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students LEFT OUTER JOIN Fee ON Students.admission = Fee.admission
Ο κώδικας επιστρέφει τα εξής:
Οι εγγραφές χωρίς αντίστοιχες τιμές αντικαθίστανται με NULL στις αντίστοιχες στήλες.
ΔΕΞΙΑ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ
Αυτός ο τύπος ένωσης επιστρέφει όλες τις σειρές από τον δεξιό πίνακα και μόνο εκείνες με αντίστοιχες τιμές στον αριστερό πίνακα. Για παράδειγμα:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students RIGHT OUTER JOIN Fee ON Students.admission = Fee.admission
Η δήλωση για τον διακομιστή OUTER JOINS SQL επιστρέφει τα ακόλουθα:
Ο λόγος για το παραπάνω αποτέλεσμα είναι ότι όλες οι σειρές στον πίνακα Fee είναι διαθέσιμες στον πίνακα Students όταν αντιστοιχίζονται στη στήλη αποδοχής.
ΠΛΗΡΗΣ ΕΞΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ
Αυτός ο τύπος ένωσης επιστρέφει όλες τις σειρές και από τους δύο πίνακες με τιμές NULL όπου η συνθήκη JOIN δεν είναι αληθής. Για παράδειγμα:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students FULL OUTER JOIN Fee ON Students.admission = Fee.admission
Ο κώδικας επιστρέφει το ακόλουθο αποτέλεσμα για ερωτήματα FULL OUTER JOINS SQL: