Νομίζω ότι όντως ζητάς πολλά από την SQL :)<div><br></div><div>Ο μοναδικός τρόπος που μπορώ να σκεφτώ, υποθέτωντας ότι γράφεις σε κάποια γλώσσα, είναι να διαβάσεις πρώτα τα πεδία των 2 πινάκων και μετά να φτιάξεις δυναμικά το SELECT ώστε να περιέχει κάθε όνομα πεδίου 1 φορά. Το πως θα το κάνεις αυτό, εξαρτάται από τη γλώσσα/βάση που δουλεύεις...</div>
<div><br></div><div>πχ ένας τρόπος να δεις τα πεδία ενός table από τη java, ανεξάρτητα βάσης, είναι <a href="http://www.roseindia.net/jdbc/jdbc-mysql/ColumnName.shtml">αυτός</a> </div><div><br></div><div>Αλλά αυτό που θες μου φαίνεται λίγο περίεργο... μήπως πρέπει να ξανασκεφτείς το σχήμα της βάσης;</div>
<div><br><div class="gmail_quote">2009/3/27 Theodore Lytras <span dir="ltr"><<a href="mailto:thlytras@gmail.com">thlytras@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Έχω μια ερωτησούλα για όποιον ξέρει καλή SQL.<br>
Ψάχνω στον γκούγκλη αλλά άκρη δε βρίσκω....<br>
<br>
Έστω οτι έχω δύο πίνακες A και B, με σχέση 1:1 και κοινό πεδίο ονόματι<br>
id. Αν θέλω να συνενώσω τους δύο πίνακες, θα δώσω:<br>
<br>
SELECT * FROM A, B WHERE A.id = B.id;<br>
<br>
ή<br>
<br>
SELECT * FROM A INNER JOIN B USING(id);<br>
<br>
Το πρόβλημα τώρα προκύπτει στην περίπτωση που υπάρχουν πεδία στον Α<br>
και στον Β με το ίδιο όνομα. Οι δύο προηγούμενες εντολές κρατούν τα<br>
πεδία και των δύο πινάκων (αφού ορίζω SELECT * ), και (τουλάχιστο σε<br>
SQLite που δοκίμασα) τα πεδία του δεύτερου πίνακα μετονομάζονται με<br>
την προσθήκη ενός ":1" στο όνομά τους.<br>
<br>
Υπάρχει κάποιος τρόπος να φιλτράρω τα πεδία του δεύτερου πίνακα? Να<br>
του πω δηλαδή να επιλέξει όλα τα πεδία του πρώτου πίνακα, ΣΥΝ όλα τα<br>
πεδία του δεύτερου που δεν υπάρχουν στον πρώτο πίνακα. Βεβαίως αυτό με<br>
κάποιο expression, χωρίς δηλαδή να ξέρω εκ των προτέρων τι πεδία<br>
υπάρχουν στον ένα και στον άλλο πίνακα.<br>
<br>
Υπ'όψιν οτι δε μιλώ για NATURAL JOIN, που (αν τουλάχιστον το κατάλαβα<br>
σωστά) κρατά τις εγγραφές εκείνες εφόσον όλα τα "συνονόματα" πεδία<br>
έχουν ίδιες τιμές. Εγώ θέλω να του ορίζω σαφώς ένα κοινό πεδίο για<br>
INNER JOIN, και από τα υπόλοιπα "συνονόματα" πεδία να κρατά μόνο τις<br>
τιμές που έχει ο ένας πίνακας, ανεξαρτήτως τι έχει ο άλλος πίνακας.<br>
<br>
Γίνεται αυτό? Ή ζητώ πολλά από την SQL????<br>
<br>
Ευχαριστώ προκαταβολικά,<br>
<br>
Θοδωρής<br>
<font color="#888888"><br>
--<br>
linux-greek-users mailing list -- <a href="http://lists.hellug.gr" target="_blank">http://lists.hellug.gr</a></font></blockquote></div><br></div>