Προς το περιεχόμενο

Aπλή ερώτηση Βάσεων Δεδομένων και sql


katina

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω δυο πίνακες:

 

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 βγάζει λιγότερες εγγραφές. Γιατί;

 

Ευχαριστώ

Δημοσ.

>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).

 

Ευχαριστώ

Δημοσ.

Σε ευχαριστώ πολύ. Επειδή το query είναι πολύ σύνθετο με where δεν γίνεται;

 

SELECT ...

FROM ..

WHERE ...?

 

Ευχαριστώ πολύ πάντως

Δημοσ.

Νομίζω πως με WHERE ίσως να είναι πιο περίπλοκο. Όπως και να έχει, περίμενε να απαντήσει και κάποιος άλλος με περισσότερες γνώσεις επί του θέματος.

Δημοσ.

Κανονικά το αρχικό query σου θα πρεπει να βγάζει σωστά αποτελέσματα.

Mου βγάζει λιγότερες εγγραφές. Το δοκίμασα και με access

Δημοσ.

Εμενα που δοκίμασα μου βγάζει τις ίδιες με το left join. Η μονη λογική να σου βγάζει λιγότερες είναι στο Α να έχεις id από τον Β που δεν υπάρχουν, κατι που δεν πρέπει να σε αφήνει να κανεις.

Δημοσ.

Έχεις δίκιο...μήπως γι'αυτό δεν το εμφανίζει;; Αν είναι κενό το πεδίο θα το εμφανίσει; Δηλαδή αν το ένα id είναι κενό;

 

Αν βάλω distinct και δεν βάλω το where το σώζω;

Δημοσ.

Ο λόγος είναι πως έχω πολλά στοιχεία.

 

Δηλαδή έχω ήδη Select στοιχεία

From πολλούς πίνακες

Where πολλές συνθήκες.

 

Πως να βάλω και το inner;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...