SQL join ερώτηση

Θοδωρής Λύτρας thlytras at gmail.com
Sat Mar 28 00:58:59 EET 2009


Στις Παρ 27 Μαρ 2009, ο/η P. Christeas έγραψε:
> > > George Zarogiannis wrote:
> > > > Νομίζω ότι όντως ζητάς πολλά από την SQL :)
>
> Κι όμως.. είναι απλά τα πράγματα:
>
> SELECT tableA.*, tableB.name AS name_b tableB.field1 AS field1_b
> 	FROM tableA, tableB
> 	WHERE tableA.id = tableB.ref_to_a;
>
> Δηλαδή όλα τα πεδία του tableA, ως έχουν, και μερικά από τον tableB,
> μετονομασμένα ώστε να μην συμπίπτουν με του A.
>
> Είναι συνήθες και δεν είναι κακό να έχουν όλοι οι πίνακες μία στήλη "id"
> και καμία "name".. Τα NATURAL JOIN εμένα δεν μου αρέσουν, προσωπικά, γιατί
> θέλω το primary key σε όλους μου τους πίνακες να λέγεται "id"  (και φυσικά
> να μην έχει σχέση μεταξύ των πινάκων).
>
> Πάντα, το πόσο εύκολη είναι η σύνταξη, εξαρτάται από τη βάση που
> χρησιμοποιείς.

Sure enough, πάλι όμως ορίζεις συγκεκριμένα πεδία από τον πίνακα tableB. Η 
ερώτηση ήταν αν θα μπορούσα να χρησιμοποιήσω κάποιο "expression" στη SELECT 
που να επιλέγει "όσα πεδία του tableB δεν έχουν συνονόματα στον tableA", 
χωρίς να μπώ στον κόπο να τα ονομάσω συγκεκριμένα. 

Μάλλον το μόνο expression που καταλαβαίνει η SQL όσον αφορά στο ποιά πεδία θές 
να συμπεριλάβεις στο query είναι το * , δηλαδή όλα. Δείχνει αρκετά 
περιοριστικό, όταν αντίθετα σου δίνει τόσες δυνατότητες να ορίσεις το ποιες 
*εγγραφές* επιλέγεις στο query.

Θοδωρής

-- 
"Beauty is transitory"
"Beauty survives"
        - Mr. Spock & Capt. Kirk, "That which survives", stardate unknown
by Theodore Lytras <thlytras at gmail.com>


More information about the Linux-greek-users mailing list