View Full Version : 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
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)
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
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..
..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
..scusa, ma non mi sono accorto che la prima risposta è "partita" incompleta mentra ancora la stavo scrivendo...
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..
..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...
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 ??
..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
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)
..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)..
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)
..grazie comunque per l'interessamento..;)
ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.