Συνδυάζει εγγραφές από δύο πίνακες όταν υπάρχουν τιμές που συμφωνούν σε ένα κοινό πεδίο.
Σύνταξη
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 ΚΑΙ
ON πίνακας1. πεδίο2τελεστής_σύγκρισης2. πεδίο2) Ή
ON πίνακας1. πεδίο3τελεστής_σύγκρισης2. πεδίο3)];
Μπορείτε επίσης να ενθέσετε προτάσεις JOIN με την ακόλουθη σύνταξη:
Πεδία SELECT
FROM πίνακας1 INNER JOIN
(πίνακας2 INNER JOIN [( ]πίνακας3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON πίνακας3. πεδίο3compoprtablex. fieldx)]
ON πίνακας2. πεδίο2τελεστής_σύγκρισης3. πεδίο3)
ON πίνακας1. πεδίο1τελεστής_σύγκρισης2. πεδίο2,
Είναι δυνατή η ένθεση μιας λειτουργίας LEFT JOIN ή RIGHT JOIN μέσα σε μια λειτουργία INNER JOIN, αλλά δεν είναι δυνατή η ένθεση μιας λειτουργίας INNER JOIN μέσα σε μια λειτουργία LEFT JOIN ή RIGHT JOIN.