Συνδυάζει εγγραφές από δύο πίνακες όταν υπάρχουν τιμές που συμφωνούν σε ένα κοινό πεδίο.
Σύνταξη
FROM πίνακας1 INNER JOIN πίνακας2 ON πίνακας1.πεδίο1τελεστής_σύγκρισης πίνακας2.πεδίο2
Η λειτουργία INNER JOIN έχει τα εξής τμήματα:
Τμήμα |
Περιγραφή |
πίνακας1, πίνακας2 |
Τα ονόματα των πινάκων από τους οποίους γίνεται συνδυασμός των εγγραφών. |
πεδίο1, πεδίο2 |
Τα ονόματα των πεδίων που ενώνονται. Εάν δεν είναι αριθμητικά, τα πεδία θα πρέπει να είναι του ίδιου τύπος δεδομένων και να περιέχουν το ίδιο είδος δεδομένων, αλλά δεν είναι απαραίτητο να έχουν το ίδιο όνομα. |
τελεστής_σύγκρισης |
Οποιοσδήποτε σχεσιακός τελεστής σύγκρισης: "=", "<", ">", "<=", ">=" ή "<>". |
Παρατηρήσεις
Μπορείτε να χρησιμοποιήσετε μια λειτουργία INNER JOIN σε οποιονδήποτε όρο FROM. Είναι ο πιο κοινός τύπος συνδέσμου. Οι εσωτερικοί σύνδεσμοι συνδυάζουν εγγραφές από δύο πίνακες όταν υπάρχουν τιμές που συμφωνούν σε ένα πεδίο που είναι κοινό και στους δύο πίνακες.
Μπορείτε να χρησιμοποιήσετε μια INNER JOIN με τους πίνακες Departments και Employees για να επιλέξετε όλους τους υπαλλήλους σε κάθε τμήμα. Αντίθετα, για να επιλέξετε όλα τα τμήματα (ακόμη και εάν ορισμένα δεν διαθέτουν υπαλλήλους που να έχουν εκχωρηθεί σε αυτά) ή όλους τους υπαλλήλους (ακόμη και εάν ορισμένοι δεν έχουν εκχωρηθεί σε ένα τμήμα), μπορείτε να χρησιμοποιήσετε μια λειτουργία LEFT JOIN ή RIGHT JOIN για να δημιουργηθεί ένας εξωτερικός σύνδεσμος.
Εάν προσπαθήσετε να συνδέσετε πεδία που περιέχουν δεδομένα υπομνήματος ή αντικειμένων OLE, εμφανίζεται ένα μήνυμα σφάλματος.
Μπορείτε να συνδέσετε οποιαδήποτε αριθμητικά πεδία με παρόμοιους τύπους. Για παράδειγμα, μπορείτε να συνδέσετε πεδία αυτόματης αρίθμησης και πεδία μεγάλου μήκους, επειδή είναι παρόμοιου τύπου. Ωστόσο, δεν μπορείτε να συνδέσετε πεδία μονού και διπλού τύπου.
Το παρακάτω παράδειγμα δείχνει πώς μπορείτε να συνδέσετε τους πίνακες Categories και Products με βάση το πεδίο CategoryID:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
Στο προηγούμενο παράδειγμα, το CategoryID είναι το πεδίο σύνδεσης, αλλά δεν περιλαμβάνεται στα αποτελέσματα του ερωτήματος επειδή δεν περιλαμβάνεται στην πρόταση SELECT. Για να συμπεριλάβετε το πεδίο σύνδεσης, συμπεριλάβετε το όνομα του πεδίου στην πρόταση SELECT — σε αυτή την περίπτωση, Categories.CategoryID.
Μπορείτε επίσης να συνδέσετε περισσότερους από έναν όρους ON σε μια πρόταση JOIN, χρησιμοποιώντας την ακόλουθη σύνταξη:
SELECT πεδία
FROM πίνακας1 INNER JOIN πίνακας2 ON πίνακας1.πεδίο1τελεστής_σύγκρισηςπίνακας2.πεδίο1 AND ON πίνακας1.πεδίο2τελεστής_σύγκρισηςπίνακας2.πεδίο2) OR ON πίνακας1.πεδίο3τελεστής_σύγκρισηςπίνακας2.πεδίο3)];Μπορείτε επίσης να ενθέσετε προτάσεις JOIN με την ακόλουθη σύνταξη:
SELECT πεδία
FROM πίνακας1 INNER JOIN (πίνακας2 INNER JOIN [( ]πίνακας3 [INNER JOIN [( ]πίνακας_x [INNER JOIN ...)] ON πίνακας3.πεδίο3τελεστής_σύγκρισηςπίνακας_x.πεδίο_x)] ON πίνακας2.πεδίο2τελεστής_σύγκρισηςπίνακας3.πεδίο3) ON πίνακας1.πεδίο1τελεστής_σύγκρισηςπίνακας2.πεδίο2;Είναι δυνατή η ένθεση μιας λειτουργίας LEFT JOIN ή RIGHT JOIN μέσα σε μια λειτουργία INNER JOIN, αλλά δεν είναι δυνατή η ένθεση μιας λειτουργίας INNER JOIN μέσα σε μια λειτουργία LEFT JOIN ή RIGHT JOIN.