freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Ερώτηση για σύνταξη DML


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » Βάσεις Δεδομένων και SQL - γενικά
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [7 Μηνύματα]       Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
Firefast


Μέλος από: 26 Νοε 2006
Μηνύματα: 92
Περιοχή: Χαμένος στο άπειρο
View users profile
ΜήνυμαΣτις: 30 Αυγ 2015 18:45    Θέμα: Ερώτηση για σύνταξη DML Απάντηση με παράθεση  Mark this post and the followings unread

Χαιρετώ, θέλω μια μικρή βοήθεια.

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



Η ερώτηση μου είναι η εξής:
θέλω η βάση να μου επιστρέψει : όλους τους συγγραφείς που έχουν συγγράψει παραπάνω από 2 βιβλία καθώς και όλα τα βιβλία που έχουν συγγραφεί από παραπάνω από ένα συγγραφέα.

Πως θα πρέπει να είναι σύνταξη του ερωτήματος για να πάρω πίσω αυτά τα αποτελέσματα(αν είναι εφικτό με αυτήν την δομή πάντα);

Κώδικας για την δημιουργία πινάκων

κώδικας:
"Dhmiourgia pinaka Sugrafewn"

create table writer
(
    w_pk int not null,
    name varChar(15),
    surname varChar(20),
    Primary key (w_pk));

"Dhmiourgia pinaka bibliwn"

create table book
(
    b_pk int not null,
    Isbn varChar(16),
    title varChar(20),
    price float,
    pages int,
    Primary key (b_pk));

"Dhmiourgia pinaka ekdotwn"

Create table publisher
(
    p_pk int not null,
    name varChar(20),
    Primary key (p_pk))


"Dhmiourgia pinaka publisher book writer"
Create table publisher_book_writer
    (
    pbw_pk is not null
    p_pk varChar(2),
    b_pk varChar(2),
    w_pk varChar(2),
    Primary key(pbw_pk),
    Foreign Key p_pk references publisher(p_pk),
    Foreign Key b_pk referencer book(b_pk),
    Foreign key w_pk references writer(w_pk));

_________________
It's not technology....It's what you do with it.
geomagas


Μέλος από: 06 Απρ 2013
Μηνύματα: 256+
Περιοχή: Ηράκλειο Κρήτης
View users profile Visit posters website
ΜήνυμαΣτις: 30 Αυγ 2015 22:52    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Η δομή σου έχει θέματα.

Αλλά έστω κι έτσι, τι έχεις κάνει μέχρι τώρα; Που κόλλησες;

_________________
Η ιστοσελίδα μου
Γκρίκ ΓουόρντΠρες Ριζόρσις
Firefast


Μέλος από: 26 Νοε 2006
Μηνύματα: 92
Περιοχή: Χαμένος στο άπειρο
View users profile
ΜήνυμαΣτις: 31 Αυγ 2015 02:03    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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

Τα έχω καταφέρει στα υπόλοιπα ερωτήματα αλλά έχω κολλήσει στο τελευταίο,
δηλαδή,
το πρόβλημα μου είναι πως θα γράψω σε sql να ψάξει στον τέταρτο πίνακα τις διπλές εγγραφές σε μια στήλη(για να δω αν ο συγγραφέας έχει γράψει πάνω από δύο βιβλία) και μετά να του πω να εμφανίσει τα ονόματα αυτών -που ισχύει η συνθήκη- από τον πίνακα των συγγραφέων.

Ίσως σε μπέρδεψα,αναμένω για κάποια τυχών καθοδήγηση και σε ευχαριστώ για τον χρόνο σου.

_________________
It's not technology....It's what you do with it.
geomagas


Μέλος από: 06 Απρ 2013
Μηνύματα: 256+
Περιοχή: Ηράκλειο Κρήτης
View users profile Visit posters website
ΜήνυμαΣτις: 31 Αυγ 2015 02:24    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Γιατί δεν κάνεις ένα join τον writer με τον publisher_book_writer, και να εμφανίσεις τα name, surname μόνο αν έχεις count(b_pk)>2;

_________________
Η ιστοσελίδα μου
Γκρίκ ΓουόρντΠρες Ριζόρσις
Firefast


Μέλος από: 26 Νοε 2006
Μηνύματα: 92
Περιοχή: Χαμένος στο άπειρο
View users profile
ΜήνυμαΣτις: 31 Αυγ 2015 12:07    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Επειδή δεν έχω κάποια βάση στημένη για να δοκιμάσω το ερώτημα(θεωρητικό είναι το μάθημα) Κάτι σαν και αυτό θα δούλευε;

κώδικας:

SELECT writer.name, writer.surname
FROM writer
INNER JOIN publisher_book_writer
Where count(b_pk)>2;

_________________
It's not technology....It's what you do with it.
geomagas


Μέλος από: 06 Απρ 2013
Μηνύματα: 256+
Περιοχή: Ηράκλειο Κρήτης
View users profile Visit posters website
ΜήνυμαΣτις: 31 Αυγ 2015 13:18    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Firefast ανέφερε:
Επειδή δεν έχω κάποια βάση στημένη για να δοκιμάσω το ερώτημα(θεωρητικό είναι το μάθημα) Κάτι σαν και αυτό θα δούλευε;

κώδικας:

SELECT writer.name, writer.surname
FROM writer
INNER JOIN publisher_book_writer
Where count(b_pk)>2;


Almost there.

1) έχεις ξεχάσει τη συνθήκη του join (ΟΝ...)
2) Όταν χρησιμοποιείς aggregate functions (όπως την count) και απλά πεδία, χρειάζεσαι πάντα GROUP BY
3) Αν υπάρχει συνθήκη στην οποία συμμετέχει κάποια aggregate function, τότε αυτή πρέπει να πάει στο HAVING

Το καλύτερο που έχεις να κάνεις είναι να πειραματιστείς πάνω σε υπαρκτό σχήμα. Αν δεν έχεις δυνατοτητα να στήσεις κάτι στο pc σου ή κάπου αλλού, παίξε εδώ. No excuses!

_________________
Η ιστοσελίδα μου
Γκρίκ ΓουόρντΠρες Ριζόρσις
Firefast


Μέλος από: 26 Νοε 2006
Μηνύματα: 92
Περιοχή: Χαμένος στο άπειρο
View users profile
ΜήνυμαΣτις: 31 Αυγ 2015 20:23    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Θα πειραματιστώ (No excuses! ) σε ευχαριστώ για την βοήθεια σου, να σε καλά.

_________________
It's not technology....It's what you do with it.
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [7 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » Βάσεις Δεδομένων και SQL - γενικά


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
Ερώτηση για Relationships: Χρειαζονται σε αυτη τη βαση? 5 Connor MacLeod 05 Μαη 2015 11:11
dva_dev Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 26 Απρ 2017 00:10 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos