katina Δημοσ. 30 Ιουνίου 2011 Δημοσ. 30 Ιουνίου 2011 Έχω δυο πίνακες: A(id,idB,idC) B(idB,Description) Το idB και IDC του πίνακα Α αντιστοιχούν στο IDB του πίνακα B. Εγώ θέλω να πάρω το Description του πίνακα B για κάθε ένα από αυτά τα id. Αυτό που σκέφτηκα ήταν το εξής: Select b1.Description, b2.Description From A,B b1,B b2 Where (A.idB=b1.idB) and (A.idC=b2.idB) To παραπάνω query βγάζει λιγότερες εγγραφές. Γιατί; Ευχαριστώ
macabre_sunsets Δημοσ. 30 Ιουνίου 2011 Δημοσ. 30 Ιουνίου 2011 >SELECT a.*, b.Description FROM A AS a LEFT JOIN B AS b ON a.idB = b.idB;
katina Δημοσ. 30 Ιουνίου 2011 Μέλος Δημοσ. 30 Ιουνίου 2011 >SELECT a.*, b.Description FROM A AS a LEFT JOIN B AS b ON a.idB = b.idB; To id του a δεν το θέλω όμως. Να βάλω σκέτο b.Description? >SELECT a.*, b.Description FROM A AS a LEFT JOIN B AS b ON a.idB = b.idB; Δεν νομίζω να δουλέψει. Δες λίγο πάλι το παράδειγμα μου σε παρακαλώ. Θέλω να εμφανιστούν 2 Description. Για να το ορίσω απλά. Έστω ότι στον πίνακα B έχω ids και διάφορα επαγγέλματα και στον Α έχω επάγγελμα πατρός και επάγγελμα μητρός με τα id τους. Θέλω να εμφανίζονται ποια είναι τα επαγγέλματα πατρός και μητρός για κάθε μαθητή (id). Ευχαριστώ
macabre_sunsets Δημοσ. 30 Ιουνίου 2011 Δημοσ. 30 Ιουνίου 2011 >SELECT b.Description AS desc1, c.Description AS desc2 FROM A AS a LEFT JOIN B AS b ON a.idB = b.idB LEFT JOIN B AS c ON a.idC = c.idB;
katina Δημοσ. 30 Ιουνίου 2011 Μέλος Δημοσ. 30 Ιουνίου 2011 Σε ευχαριστώ πολύ. Επειδή το query είναι πολύ σύνθετο με where δεν γίνεται; SELECT ... FROM .. WHERE ...? Ευχαριστώ πολύ πάντως
macabre_sunsets Δημοσ. 30 Ιουνίου 2011 Δημοσ. 30 Ιουνίου 2011 Νομίζω πως με WHERE ίσως να είναι πιο περίπλοκο. Όπως και να έχει, περίμενε να απαντήσει και κάποιος άλλος με περισσότερες γνώσεις επί του θέματος.
katina Δημοσ. 30 Ιουνίου 2011 Μέλος Δημοσ. 30 Ιουνίου 2011 Έχεις δίκιο...θα περιμένω και ας ελπίσουμε κάποιος να απαντήσει.
bnvdarklord Δημοσ. 30 Ιουνίου 2011 Δημοσ. 30 Ιουνίου 2011 Κανονικά το αρχικό query σου θα πρεπει να βγάζει σωστά αποτελέσματα.
katina Δημοσ. 30 Ιουνίου 2011 Μέλος Δημοσ. 30 Ιουνίου 2011 Κανονικά το αρχικό query σου θα πρεπει να βγάζει σωστά αποτελέσματα. Mου βγάζει λιγότερες εγγραφές. Το δοκίμασα και με access
bnvdarklord Δημοσ. 30 Ιουνίου 2011 Δημοσ. 30 Ιουνίου 2011 Εμενα που δοκίμασα μου βγάζει τις ίδιες με το left join. Η μονη λογική να σου βγάζει λιγότερες είναι στο Α να έχεις id από τον Β που δεν υπάρχουν, κατι που δεν πρέπει να σε αφήνει να κανεις.
_tasos Δημοσ. 30 Ιουνίου 2011 Δημοσ. 30 Ιουνίου 2011 Edit: Sorry, δεν κατάλαβα καλά τι ζητούσες κ απάντησα σε άλλο...
katina Δημοσ. 30 Ιουνίου 2011 Μέλος Δημοσ. 30 Ιουνίου 2011 Έχεις δίκιο...μήπως γι'αυτό δεν το εμφανίζει;; Αν είναι κενό το πεδίο θα το εμφανίσει; Δηλαδή αν το ένα id είναι κενό; Αν βάλω distinct και δεν βάλω το where το σώζω;
bnvdarklord Δημοσ. 30 Ιουνίου 2011 Δημοσ. 30 Ιουνίου 2011 Υπάρχει λόγος που δεν σου κάνει η λύση με τα left join?
katina Δημοσ. 30 Ιουνίου 2011 Μέλος Δημοσ. 30 Ιουνίου 2011 Ο λόγος είναι πως έχω πολλά στοιχεία. Δηλαδή έχω ήδη Select στοιχεία From πολλούς πίνακες Where πολλές συνθήκες. Πως να βάλω και το inner;
bnvdarklord Δημοσ. 30 Ιουνίου 2011 Δημοσ. 30 Ιουνίου 2011 Υποθέτω αντι για το where, αλλα δεν ξερω πως ειναι το κανονικό σου ερωτημα.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.