|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Nov 1999
Messaggi: 41
|
relazioni tra 2 database (quindi non 2 tab dello stesso db)
Ciao a Tutti, vi chiedo questo :
devo correlare 2 tabelle tra loro (hanno in comune i dati di un campo) che però fanno parte di 2 database diversi. Uso MySql e ASP e quando devo correlare 2 tab dello stesso database mi basta usare "left join" nella query sql. Se però le 2 tabelle appartengono a 2 database diversi (sempre in MySql comunque) come posso fare? Grazie 1000 fin da ora Fabio |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Se i db sono sullo stesso server forse è sufficente eseguire la inserire namedb.nametab nelle query altrimenti non esistono collegamenti ad db esterni (ma esistono su dbms oracle)
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Nov 1999
Messaggi: 41
|
intanto grazie per la risposta. I database sono sullo stesso server e sono in MySql. Il problema che non riesco a risolvere è che se le due tabelle fanno parte dello stesso database in ASP basta collegarle con un "left join". Così ad es. se ho il solo database "TABELLE" :
Dim conn Set conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={MySQL};Database=tabelle;UID=utente_1;PWD=prova_1;" Dim rs Set rs = Server.CreateObject("ADODB.Recordset") rs.open "select * from articoli left join clienti on articolo_1=fattura_1 ", conn Se però ho 2 database (tipo: "clienti_tabelle" e "articoli_tabelle" dove il campo "fattura_1" fa parte di "clienti_tabelle") come posso fare dato che se |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
se ti funziona questa query(con le tabelle nello stesso db):
select * from articoli left join clienti on articolo_1=fattura_1 molto probabilmente ti funzionera anche cosi(con tabelle in 2 diversi db): select * from articoli_tabelle.articoli left join clienti_tabelle.clienti on articolo_1=fattura_1 Ciao.. |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Nov 1999
Messaggi: 41
|
..intanto grazie per la risposta. I database sono sullo stesso server e sono in MySql. Il problema che non riesco a risolvere è che se le due tabelle fanno parte dello stesso database in ASP basta collegarle con un "left join". Così ad es. se ho il solo database "TABELLE" :
Dim conn Set conn = Server.CreateObject("ADODB.Connection") conn.Open "Driver={MySQL};Database=tabelle;UID=utente_1;PWD=prova_1;" Dim rs Set rs = Server.CreateObject("ADODB.Recordset") rs.open "select * from TAB_1 left join TAB_2 on TAB_1.CAMPO_1=TAB_2.CAMPO_1 ", conn Se però ho 2 database (tipo: "TABELLE" e "CARTELLE" dove il campo "TAB_1.CAMPO_1" fa parte di "TABELLE" mentre il campo "TAB_2.CAMPO_1" fa parte di "cartelle") come posso fare? Grazie 1000 |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Nov 1999
Messaggi: 41
|
..scusa, ma non mi sono accorto che la prima risposta è "partita" incompleta mentra ancora la stavo scrivendo...
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Sempre nello stesso modo:
select * from TABELLE.TAB_1 left join CARTELLE.TAB_2 on CAMPO_1=CAMPO_1 Gli unici problemi che puoi trovare sono relativi hai permessi, cioè puoi accedere ad un db ma non hai le autorizzazioni per accedere all'altro, oppure hai i nome dei campi uguali a a quel punto devi usare gli alias. ciao.. |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Nov 1999
Messaggi: 41
|
..già ma il problema è che non so come fare per inserire entrambi i database nella stessa "connection", ossia dovrei fare qualcosa del tipo:
conn.Open "Driver={MySQL};Database=tabelle,cartelle;UID=utente_1;PWD=prova_1;" ma così non va... |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
probabilmente la connessione va bene anche solo ad un db e poi se la tua utenza a la possibilità può accedere come suddento anche all'altro.
Curiosità se invece ometti a quale database vuoi connetterti cosa succede ?? |
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Nov 1999
Messaggi: 41
|
..se ometto il database mi da un errore perchè manca il database..credo non ci sia alternativa, farò un'altra tabella in uno dei due database.
Ciao |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Scusa ma se esegui una query del tipo:
"select * from db2.nometab" collegandoti con la stringa: "Driver={MySQL};Database=db1;UID=utente_1;PWD=prova_1;" Funziona ??(dorebbe funzionare) |
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Nov 1999
Messaggi: 41
|
..scusa il ritardo ma non ero in grado di collegarmi.
No, purtroppo se faccio "select * from db2.nometab" collegandoti con la stringa: "Driver={MySQL};Database=db1;UID=utente_1;PWD=prova_1;" non funziona perchè il "Database=db1" dichiarato è diverso da quello nella query (db2).. |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Non so più cosa dirti, ho provato anch'io adesso e o notato che non funziona (però oracle lo permette).
ti convine copiare la tabella nell'altro db ciao...(mi dispiace) |
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Nov 1999
Messaggi: 41
|
..grazie comunque per l'interessamento..
![]() ciao |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:38.