Η βασική σύνταξη για ένα δευτερεύον ερώτημα είναι το εξής:
SELECT * FROM πίνακας WHERE columna = ( SELECT columnb ΑΠΟ Πίνακας 2 ) ?
Υποερωτήματα πρέπει να είναι SELECT , INSERT , UPDATE , DELETE , SET ή DO δήλωση , και δεν μπορείτε να τροποποιήσετε έναν πίνακα και επιλέξτε από αυτό στο δευτερεύον ερώτημα .
υποερωτήματα βρίσκονται συνήθως στη δεξιά πλευρά της ρήτρας WHERE , το οποίο μπορεί να περιέχει οποιαδήποτε από τους ακόλουθους τελεστές σύγκρισης και λογική : = (ίσο ) , <> ( όχι ίσο) , <= ( μικρότερο ή ίσο ) , > = ( μεγαλύτερο ή ίσο ) , <( μικρότερο από) , > ? ( μεγαλύτερο από) , ΜΕΤΑΞΥ (τιμή βρίσκεται μεταξύ δύο τιμών ) NOT (Λογικό NOT) , ΚΑΙ (λογικό AND) , Ή ( λογικό OR ) . Μπορούν επίσης να περιέχουν την σαφώς διακρινόμενη, GROUP BY , ORDER BY , και λέξεις-κλειδιά LIMIT . Μπορούν ακόμη να χρησιμοποιηθούν σε συνδυασμό με JOIN καταστάσεις. Εκτός από τους παραπάνω περιορισμούς, υπάρχουν πολύ λίγοι περιορισμοί που τίθενται σε δευτερεύοντα ερωτήματα μέσα σε MySQL .
Δεν υπάρχει ούτε ένας περιορισμός στον αριθμό των υπο-ερωτήσεις που μπορεί να βρεθεί σε μια κατάσταση . Εφ 'όσον μπορείτε να τοποθετήσετε κάθε δευτερεύον ερώτημα σε παρένθεση , μπορείτε να έχετε πολλά ένθετα ερωτήματα , όπως θα πρέπει να βρείτε τα δεδομένα σας . . Περισσότερες πληροφορίες σχετικά με υποερωτήματα μπορούν να βρεθούν στο εγχειρίδιο αναφοράς MySQL ( βλ. Πόρων )
εικόνων Παράδειγμα
Η
Ας υποθέσουμε ότι έχετε δύο πίνακες : ο πρώτος περιλαμβάνει το Όνομα , Τελευταία Όνομα , Οδός Ταχυδρομικός κώδικας και τα μέλη του στη λίστα σας? το δεύτερο περιέχει Πόλη, Πολιτεία και Ταχυδρομικός Κώδικας . Αν θέλατε να βρείτε τα ονόματα των μελών που ζουν στη Γεωργία , θα μπορούσατε να χρησιμοποιήσετε πολλαπλά επιλέξτε δηλώσεις . Η πρώτη δήλωση θα ήταν να βρει τους κωδικούς zip για τη Γεωργία :
SELECT zip ΑΠΟ ΟΠΟΥ zipcode state = " ΓΕΩΡΓΙΑ " ?
Στη συνέχεια, θα εκδώσει μια δήλωση επιλογής για κάθε ταχυδρομικό κώδικα επέστρεψε :
SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ διεύθυνση ΑΠΟ ΟΠΟΥ zip = " [ ταχυδρομικό κώδικα ] " ?
η μέθοδος αυτή είναι πολύ χρονοβόρα και επιρρεπής σε λάθη . Είναι εύκολο να χάσετε ένα ταχυδρομικό κώδικα , ειδικά αν υπάρχουν πολλοί από αυτούς
Ένας ευκολότερος τρόπος για να ολοκληρώσετε το έργο σας θα είναι να εκδώσει την πρώτη δήλωση ως ένα δευτερεύον ερώτημα για τη δεύτερη δήλωση: .
SELECT ΟΝΟΜΑ, ΕΠΙΘΕΤΟ διεύθυνση ΑΠΟ ΟΠΟΥ zip = ( SELECT zip ΑΠΟ ΟΠΟΥ zipcode state = " ΓΕΩΡΓΙΑ ")? .
Αυτό το ερώτημα θα επιστρέψει όλα τα μέλη του στη λίστα σας που ζουν στη Γεωργία με ένα ερώτημα
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα