2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Στη MySQL,LEFT JOIN
Χρησιμοποιείται για την επιστροφή όλων των εγγραφών από τον αριστερό πίνακα (δηλαδή τον πίνακα στα αριστερά της λέξης-κλειδιού LEFT JOIN), ακόμα κι αν δεν υπάρχουν αντίστοιχες εγγραφές στον δεξιό πίνακα. Για εκείνες τις εγγραφές που δεν ταιριάζουν στον σωστό πίνακα, το δεξιό τμήμα πίνακα του συνόλου αποτελεσμάτων θα γεμίσει με NULL.σχετικά μεON
καιWHERE
Η χρήση των ρητρών, είναι μέσαLEFT JOIN
Οι ρόλοι είναι διαφορετικοί:
ON
αργότερα.αν μέσαON
Υπάρχουν πρόσθετοι περιορισμοί υπό όρους στον δεξιό πίνακα αργότερα, οι οποίοι θα εφαρμοστούν επίσης κατά τη σύνδεση, αλλά δεν θα επηρεάσουν την αρχή της επιστροφής όλων των εγγραφών από τον αριστερό πίνακα.JOIN
Το σύνολο αποτελεσμάτων που δημιουργείται από τη λειτουργία φιλτράρεται περαιτέρω.Όταν τοποθετηθεί η συνθήκηWHERE
ρήτρα, αυτές οι εγγραφές που δεν πληρούν τις προϋποθέσεις (είτε από τον αριστερό πίνακα είτε από τον δεξιό πίνακα) θα αφαιρεθούν, γεγονός που μπορεί να επηρεάσει την αρχική πρόθεση επιστροφής όλων των εγγραφών από τον αριστερό πίνακα, ειδικά όταν χειρίζεστε τιμές NULL, πρέπει να ιδιαίτερα προσεκτικός.Συγκεκριμένη περίπτωση πρώτη:
Ας υποθέσουμε ότι έχουμε δύο πίνακες, το ένα είναιemployees
(πίνακας εργαζομένων), το άλλο είναιdepartments
(πίνακας τμημάτων), θέλουμε να μάθουμε όλους τους υπαλλήλους και τα ονόματα των τμημάτων τους, ακόμα κι αν κάποιοι υπάλληλοι δεν έχουν τοποθετηθεί σε συγκεκριμένο τμήμα.
πίνακας εργαζομένων:
ταυτότητα | όνομα |
---|---|
1 | Αλίκη |
2 | Βαρίδι |
3 | Κάλαντα |
πίνακας τμημάτων:
ταυτότητα | όνομα |
---|---|
1 | HR |
2 | ΤΟ |
3 | Εμπορία |
σε,employees
τραπέζιdepartment_id
Το πεδίο μπορεί να είναι NULL, υποδεικνύοντας ότι δεν υπάρχει εκχωρημένο τμήμα.
Παράδειγμα χρήσης ON:
SELECT employees.name, departments.name AS department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;