Υλικό υπολογιστών

Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> Ηλεκτρονική αναγνώστες βιβλίων

Ποιοι πίνακες και πεδία θα έχετε πρόσβαση για να καθορίσετε ποιοι τίτλοι βιβλίων έχουν αγοραστεί από τον πελάτη όταν αποστέλλεται η παραγγελία;

Για να προσδιορίσετε ποιοι τίτλοι βιβλίων έχουν αγοραστεί από έναν πελάτη όταν η παραγγελία που αποστέλλεται, θα πρέπει να έχετε πρόσβαση σε τουλάχιστον τρία τραπέζια και πιθανότατα περισσότερο ανάλογα με το σχεδιασμό του σχήματος της βάσης δεδομένων σας. Εδώ είναι μια κατανομή:

Πίνακες:

1. Πελάτες: Αυτός ο πίνακας περιέχει πληροφορίες σχετικά με τους πελάτες σας. Τα σχετικά πεδία ενδέχεται να περιλαμβάνουν:

* `customer_id` (πρωτογενές κλειδί)

* `customer_name` (ή παρόμοιο πεδίο αναγνώρισης)

2. Παραγγελίες: Αυτός ο πίνακας παρακολουθεί τις παραγγελίες πελατών. Τα σχετικά πεδία περιλαμβάνουν:

* `order_id` (πρωτεύον κλειδί)

* `customer_id` (ξένοι πελάτες αναφοράς κλειδιών)

* `order_date '

* `shipping_date` (υποδεικνύει πότε αποστέλλεται η παραγγελία)

3. order_items (ή παρόμοια): Αυτός ο πίνακας περιγράφει λεπτομερώς τα στοιχεία που περιλαμβάνονται σε κάθε σειρά. Τα σχετικά πεδία περιλαμβάνουν:

* `order_item_id` (πρωτεύον κλειδί)

* `order_id` (παραγγελίες αναφοράς ξένου κλειδιού)

* `book_id` (βιβλία αναφοράς ξένων κλειδιών - βλ. Παρακάτω)

* «Ποσότητα» (αριθμός αντιγράφων του βιβλίου)

4. Βιβλία: Αυτός ο πίνακας περιέχει πληροφορίες για τα ίδια τα βιβλία. Τα σχετικά πεδία είναι:

* `book_id` (πρωτεύον κλειδί)

* `book_title` (ο τίτλος του βιβλίου)

Λογική ερωτήματος:

Θα πρέπει να συμμετάσχετε σε αυτούς τους πίνακες χρησιμοποιώντας τα ξένα κλειδιά για να συνδέσετε τις παραγγελίες με τους πελάτες και να παραγγείλετε αντικείμενα σε βιβλία. Το πεδίο `shipping_date` στον πίνακα` παραγγελίες 'είναι ζωτικής σημασίας για το φιλτράρισμα των παραγγελιών που έχουν ήδη αποσταλεί.

Ένα ερώτημα SQL μπορεί να φαίνεται κάτι τέτοιο (η ακριβής σύνταξη μπορεί να διαφέρει ελαφρώς ανάλογα με το συγκεκριμένο σύστημα βάσης δεδομένων):

`` sql

ΕΠΙΛΕΓΩ

B.Book_Title

ΑΠΟ

Πελάτες γ

ΕΝΩΝΩ

Παραγγελίες o στο c.customer_id =o.customer_id

ΕΝΩΝΩ

Order_items oi στο o.order_id =oi.order_id

ΕΝΩΝΩ

Βιβλία Β στο oi.book_id =b.book_id

ΟΠΟΥ

Το O.Shipping_date δεν είναι μηδενικό -που έχει αποσταλεί η παραγγελία

Και C.Customer_ID =[CUSTERN_ID] - Αντικαταστήστε το [customer_id] με το συγκεκριμένο αναγνωριστικό πελάτη

;

`` `

Αυτό το ερώτημα θα επιστρέψει μια λίστα με `book_title που αγοράστηκε από έναν συγκεκριμένο πελάτη του οποίου η παραγγελία έχει ένα` shipping_date '. Θα πρέπει να αντικαταστήσετε το `[customer_id]` με το πραγματικό `customer_id` που σας ενδιαφέρει. Εάν θέλετε όλους τους πελάτες, παραλείψτε την κατάσταση των αναγνωριστικών του πελάτη` όπου 'ρήτρα. Ίσως θελήσετε επίσης να προσθέσετε `group by b.book_title` για να αποφύγετε διπλούς τίτλους βιβλίων εάν ένας πελάτης αγόρασε πολλαπλά αντίγραφα.

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

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