Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> PHP /MySQL Προγραμματισμός

MySQL ενώνει Σχέση Tutorial

MySQL είναι ένα open source σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων ( RDBMS ), οι ιδιώτες και οι εταιρείες χρησιμοποιούν συχνά για να τρέξει το πίσω άκρο του web εφαρμογές . Στην SQL , ενώνει συχνά να οδηγήσουν σε ματαίωση νέους χρήστες . Οι βάσεις δεδομένων γίνονται μεγαλύτερα , καθίσταται ζωτικής σημασίας για τα ερωτήματα για να χρησιμοποιήσετε ενώνει αποτελεσματικά . JOIN λέξη MySQL καθιστά ευκολότερο να εργαστεί τόσο με τα νέα και την κληρονομιά κώδικα . Εσωτερική ενώνει
Η

Όταν σκέφτεστε ενώνει δύο πίνακες , σκέφτεστε πιθανώς ένα ερώτημα με ένα απλό ενταχθούν από ένα τραπέζι , όπως εργαζόμενοι με έναν πίνακα όπως Τμήματα :

SELECT Employees.last_name , Employees.first_name , Departments.department_nameFROM Τμήματα , EmployeesWHERE Departments.department_id = Employees.department_id ?

Αυτή είναι μια εσωτερική σύνδεση . Ανακτά μόνο τις γραμμές όπου η department_id είναι ακριβώς ίση και στους δύο πίνακες . Ο παραπάνω κώδικας δουλεύει σε MySQL , αλλά μπορείτε να το βρείτε λιγότερο ευανάγνωστη από το ακόλουθο κείμενο :

SELECT Employees.last_name , Employees.first_name , Departments.department_nameFROM DepartmentsINNER JOIN EmployeesON Departments.department_id = Employees.department_id ?

Αυτά τα δύο ερωτήματα παράγουν ακριβώς το ίδιο αποτέλεσμα . Η διαφορά είναι ότι με τη χρήση της MySQL JOIN λέξη-κλειδί , έχετε κάνει το πιο προφανές τι είδους ενταχθούν που χρησιμοποιήσατε . Από εσωτερικός σύνδεσμος είναι η προεπιλογή, αν φύγετε από τη λέξη-κλειδί INNER , MySQL εκτελεί ακόμα μια εσωτερική σύνδεση .
Εικόνων Outer ενώνει
Η

Αν έχετε εργαζόμενοι που δεν έχουν ανατεθεί σε ένα συγκεκριμένο τμήμα και να έχουν μια τιμή NULL για department_id τους, το παραπάνω ενταχθούν δεν θα εμφανίσει τους εργαζομένους σε όλα . Αν θέλετε όλους τους εργαζόμενους είτε διαθέτουν υπηρεσία ή όχι , θα πρέπει να χρησιμοποιήσετε έναν εξωτερικό σύνδεσμο .

MySQL χρησιμοποιεί ΑΡΙΣΤΕΡΑ ή ΔΕΞΙΑ με τη λέξη-κλειδί JOIN για να καθορίσετε ότι θέλετε έναν εξωτερικό σύνδεσμο , και να πει τα οποία ο πίνακας θέλετε τις τιμές NULL από . Εδώ είναι αναθεωρημένη ερώτημα μας :

SELECT Employees.last_name , Employees.first_name , Departments.department_nameFROM EmployeesLEFT ΕΞΩΤΕΡΙΚΗ JOIN DepartmentON Departments.department_id = Employees.department_id ?

Μπορείτε να πάρετε κάθε εργαζόμενο στην παραγωγή σας , ακόμη αν MySQL βρίσκει κανένα department_id να ταιριάζουν με την εγγραφή των εργαζομένων . Ο πίνακας θέλετε να επιτρέψετε μηδενικά από ( τμήματα ) είναι στα αριστερά του ίσον.

Αν ήθελε να δει τμήματα χωρίς υπαλλήλους της παραγωγής σας , θα πρέπει να χρησιμοποιήσετε ένα δεξιό εξωτερικό σύνδεσμο . Ο πίνακας θέλετε να επιτρέψετε μηδενικά από την εν λόγω υπόθεση είναι στα δεξιά του ίσον.

Η σταυρός ενώνει
Η Να κάνει σταυρός ενώνει από ατύχημα είναι ένα κοινό λάθος . Είναι ό, τι συμβαίνει όταν δεν καθορίσετε μια ενταχθούν σε όλα . Αν δεν τεθεί είτε ένα ενταχθούν σε σας πρόταση WHERE , ή να χρησιμοποιήσετε ένα από το άλλο ... JOIN ON επιλογές , μπορείτε να πάρετε κάθε πιθανό συνδυασμό των γραμμών σε κάθε ένα από τους πίνακες που σου ΑΠΟ αν έχουν σχέση ή όχι .

Αν τραβήξει από τρεις πίνακες που έχουν , αντίστοιχα , 10 , 20 , και 3 σειρές , μπορείτε να πάρετε 10 x 20 x 3 σειρές , όπως η συνολική παραγωγή σας . Μπορείτε να δείτε το πρόβλημα αυτό προκαλεί εάν η βάση δεδομένων σας έχει περισσότερο από μερικά αρχεία .

Σπάνια , θα θελήσετε να κάνετε ένα σταυρό ενταχθούν στο σκοπό. MySQL σας επιτρέπει να χρησιμοποιήσετε το CROSS JOIN ON ... σύνταξη για να δείξει κανείς την επεξεργασία του κώδικα σας αργότερα ότι ο σταυρός ενταχθούν ήταν εσκεμμένη .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα