Newsgroup: it.comp.lang.vo-clipper
Titolo: [OT] Inner join su MySQ 5

Scusate l'ot ma forse qualcuno mi può aiutare.
Ho un problema con la versione 5 di Mysql. Una semplice query del tipo 
select * from fatture inner join clienti using(codcli) in MySQL 4.22 mi 
restituiva, correttamente, tutti i campi della tabella fatture seguiti dai 
campi della tabella clienti. Nella versione 5, invece, mi restituisce PRIMA 
il campo usato nell'using, POI tutti i campi elencati correttamente.
Per quale recondito motivo mi inserisce all'inizio dell'elenco il campo 
usato per la clausola using? Ovviamente così mi sballa tutto il recordset e 
la cosa mi crea non pochi problemi. Prima di mandare al vaffaday la versione 
5 e reinstallare la 4.22 vorrei capire se esiste una soluzione.
Grazie.
                                            Francesco Leo 


Non mandare al vaffaday (anche perchč queste manifestazioni becere non le 
condivido) la 5 perchč offre troppi vantaggi, da una prova fatta a me torna 
correttamente (5.0.45)
Comunque puoi dire anche
select fatture.*,clienti.* from fatture,clienti where 
fatture.codcli=clienti.codcli a me da lo stesso risultato.
Danilo

 Danilo
Anche io ho provato con la 5.0.45, ma non va, ed ho provato su due pc 
diversi configurati con Linux Centos 5.
So che posso usare l'on al posto dello using(), ed in effetti anche a me 
funziona cosě, ma ho tutto il codice scritto con lo using() e non mi va di 
riscrivere il tutto per una cavolata del genere.
L'unica cosa che mi chiedo: io ho creato le tabelle con la 4.22 su di un 
altro pc, poi ho fatto un dump di tutto il database ed un restore nel nuovo 
server con la versione 5. Non č che cosě facendo ho compromesso qualcosa 
della versione 5? Non trovo altre spiegazioni logiche. Sto facendo un altro 
po' di prove, ma se non risolvo entro oggi, l'unica alternativa č il 
vaffaday, ne istituisco uno nuovo oggi proprio per la AB, che tra l'altro 
non fornisce alcuna spiegazione nemmeno sul suo manuale ufficiale (70 
Euro!). Cita solo la clausola on nelle query e mai quella using(), 
strano.......
Grazie comunque, come sempre disponibile.
                                            Francesco

Ho scoperto la causa ma non il motivo!
Se fai una query su due tabelle con using(campo) e campo è un indice 
autoincrement, questo viene riportato sempre al primo posto, altrimenti la 
query va bene.
BAH!
Poco altro tempo e poi la mando.........

 Se fai una query su due tabelle con using(campo) e campo č un indice 


> Se fai una query su due tabelle con using(campo) e campo è un indice 


                                        Francesco Leo
Francesco non ho mai usato using e non ho alcun problema.
Uso MySql dalla 3.x e passando alla 4.0, poi alla 4,1 ora alla 5.0 non ho 
mai combiato una query che fosse una.
Debbo dire che uso sempre la sinstassi
select * from x,y where 
x.id
 = 
y.id
oppure
select * from x left join y on 
x.id
 = 
y.id
 (quando serve la left join)
Danilo
Danilo 

 Danilo
Anche io all'inizio usavo l'on al posto dello using(), ma poi ho trovato 
molto più comodo e veloce usarlo, per esempio quando ho nomi di tabelle al 
volo, ora mi tocca scrivere on cTabella1 + ".campo"  = cTabella2 + ".campo" 
, metre prima scrivevo using(campo) e basta.
In effetti hanno migliorato molto, nelle prime versioni 5 non mi accettava 
nemmeno i valori null automatici, e per questo l'avevo scartata a priori, ma 
modificare una funzione importate come la join e non documentarla è 
semplicemente da pazzi! Puoi immaginare cosa sarebbe successo se non me ne 
fossi accorto, visto che nel caso specifico facevo uno join di esami clinici 
e pazienti, sai che bello trovarsi tutti gli esami sballati!
Comunque domani installo l'aggiornamento e vediamo se darà altre 
rogne.........spero proprio di no.
Ciao.
                                Francesco