|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2005
Città: San Vito
Messaggi: 3396
|
[SQL] Join
ciao a tutti.
la domanda è rapida e concisa: qual'è l'utilità di usare il join? cioè, su due ipotetiche tabelle Persone (Nome,Patente) e Auto (Modello, Patente) se io usassi Codice:
SELECT *
FROM Persone JOIN Auto
ON (Persone.Patente = Auto.Patente);
Codice:
SELECT * FROM Persone, Auto WHERE Persone.Patente=Auto.Patente;
__________________
Corsair VX550W || [email protected] || Asus P5k || 2x1GB OCZ Platinum XTC DDR2 800 || Gigabyte GTX660Ti OC 2GB || 500 GB Seagate Barracuda ------ Vendo componenti pc socket 478 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
si così si..
ma metti di dover estrarre nome, patente ed eventuali auto da: carlo AA tizio BB caio CC audi AA mercedes AA fiat BB devi per forza usare una JOIN...una left outer ok...ma fa sempre parte delle join
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
Quote:
|
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Quote:
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2007
Messaggi: 1092
|
|
|
|
|
|
|
#6 |
|
Messaggi: n/a
|
Si le due sintassi producono lo stesso risultato.
Tuttavia la prima è maggiormente consigliabile per questioni di portabilità e credo anche di prestazioni. |
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2005
Città: San Vito
Messaggi: 3396
|
perfetto, grazie mille
__________________
Corsair VX550W || [email protected] || Asus P5k || 2x1GB OCZ Platinum XTC DDR2 800 || Gigabyte GTX660Ti OC 2GB || 500 GB Seagate Barracuda ------ Vendo componenti pc socket 478 |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
In tutta onestà, se un engine SQL non sa riconoscere una join espressa in forma di where, lo butto direttamente nel cesso.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#9 |
|
Messaggi: n/a
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Un engine SQL che si rispetti quando fa il parsing della query costruisce generalmente un AST, per poi generare il codice interno per gestire la richiesta.
Nell'analisi dell'AST si può benissimo riconoscere che la condizione che "lega" due tabelle è effettivamente una join, e quindi generare opportuno codice per gestire efficacemente il caso. Si tratta di roba ormai stravecchia e ben nota non soltanto in letteratura. Insomma, strausatissima. Per cui se un engine SQL oggigiorno non riesce a riconoscere questi casi e gestirli correttamente, vuol dire che definirlo scarso è fargli un complimento. Per cui merita di essere defenestrato (magari assieme a chi l'ha scritto).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:31.




















