|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 471
|
Domanda estrazione chiavi comuni tra 2 tabelle(database)
Salve a tutti....
Per lavoro faccio spesso query su database oracle utilizzando sql navigatorl 4.13... Siccome lavoro con moltissime tabelle vorrei sapere se cè un modo,un comando o un programma che date due tabelle mi dice i 2 campi o colonne che unisce le tabelle(in gergo tecnico dovrebbero essere le chiavi primarie).... grazie |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
|
Beh se le due tabelle hanno il nome del campo comune uguale, basta dare un comando come questo:
SELECT * FROM TabellaA NATURAL JOIN TabellaB Onestamente non so come si comporta Oracle, ma PostgreSQL effettua il lavoro anche se la chiave della "TabellaA" (o B) è in vincolo FOREIGN KEY con la chiave della TabellaB (o A). Spero di aver risolto, facci sapere. --- EDIT --- Ho notato che la domanda era un'altra, ho capito male ![]() Vedo se c'è qualcosa. probabilmente devi andare a smanettare nelle tabelle interne del DB (lo Schema)
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17 Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
|
Ho creato una query che si riferisce al mio problema. In particolare i dati sono i seguenti:
Nome db: "sts_db" Nome schema: "sts_dbms" Tieni presente che la query che sto per darti trova TUTTI i campi con un nome comune, anche quelli che non sono primary key. Ad esempio, ho due tabelle, Prezzi e VecchiPrezzi, con un campo che si chiama allo stesso modo; questo risulta nella lista dei risultati. Quindi fai attenzione. Ecco la query: SELECT A.table_name as "Tabella A",B.table_name as "Tabella B",A.column_name as "Nome colonna" FROM sts_db.information_schema.columns A, sts_db.information_schema.columns B where A.column_name=B.column_name AND A.table_name<>B.table_name AND A.table_schema='sts_dbms' AND B.table_schema='sts_dbms' Il risultato che ottengo è il seguente. Per quanto riguarda la prima riga, si capisce che la tabella "ultimelavorazioni" e la tabella "locks" hanno un campo con lo stesso nome, "telef_code": "ultimelavorazioni";"locks";"telef_code" "ultimelavorazioni";"lavorazioni";"telef_code" "log";"vecchiprezzi";"utente" "log";"prezzi";"utente" "log";"locks";"utente" "prezzi";"vecchiprezzi";"ricavi" "prezzi";"vecchiprezzi";"costi_fissi" "prezzi";"log";"utente" "prezzi";"vecchiprezzi";"utente" "prezzi";"locks";"utente" "prezzi";"lavorazioni";"nome_intervento" "prezzi";"vecchiprezzi";"nome_intervento" "prezzi";"interventi";"nome_intervento" "prezzi";"lavorazioni";"gestore" "prezzi";"vecchiprezzi";"gestore" "prezzi";"interventi";"gestore" "prezzi";"lavorazioni";"appalto" "prezzi";"vecchiprezzi";"appalto" "prezzi";"interventi";"appalto" "secondi_nomi_centrali";"lavorazioni";"nomecentrale" "secondi_nomi_centrali";"centrali_telefoniche";"nomecentrale" "squadra";"lavorazioni";"id_squadra" "tecnico";"utilizzo";"codice" "tecnico";"utilizzo";"nome" "tecnico";"magazzino";"nome" "tecnico";"persona";"indirizzo" "tecnico";"centrali_telefoniche";"indirizzo" "utilizzo";"tecnico";"nome" "utilizzo";"magazzino";"nome" "utilizzo";"tecnico";"codice" "magazzino";"tecnico";"nome" "magazzino";"utilizzo";"nome" "lavorazioni";"locks";"telef_code" "lavorazioni";"ultimelavorazioni";"telef_code" "lavorazioni";"squadra";"id_squadra" "lavorazioni";"vecchiprezzi";"nome_intervento" "lavorazioni";"prezzi";"nome_intervento" "lavorazioni";"interventi";"nome_intervento" "lavorazioni";"vecchiprezzi";"gestore" "lavorazioni";"prezzi";"gestore" "lavorazioni";"interventi";"gestore" "lavorazioni";"vecchiprezzi";"appalto" "lavorazioni";"prezzi";"appalto" "lavorazioni";"interventi";"appalto" "lavorazioni";"centrali_telefoniche";"regione" "lavorazioni";"secondi_nomi_centrali";"nomecentrale" "lavorazioni";"centrali_telefoniche";"nomecentrale" "persona";"tecnico";"indirizzo" "persona";"centrali_telefoniche";"indirizzo" "vecchiprezzi";"prezzi";"ricavi" "vecchiprezzi";"prezzi";"costi_fissi" "vecchiprezzi";"log";"utente" "vecchiprezzi";"prezzi";"utente" "vecchiprezzi";"locks";"utente" "vecchiprezzi";"lavorazioni";"nome_intervento" "vecchiprezzi";"prezzi";"nome_intervento" "vecchiprezzi";"interventi";"nome_intervento" "vecchiprezzi";"lavorazioni";"gestore" "vecchiprezzi";"prezzi";"gestore" "vecchiprezzi";"interventi";"gestore" "vecchiprezzi";"lavorazioni";"appalto" "vecchiprezzi";"prezzi";"appalto" "vecchiprezzi";"interventi";"appalto" "interventi";"lavorazioni";"nome_intervento" "interventi";"vecchiprezzi";"nome_intervento" "interventi";"prezzi";"nome_intervento" "interventi";"lavorazioni";"gestore" "interventi";"vecchiprezzi";"gestore" "interventi";"prezzi";"gestore" "interventi";"lavorazioni";"appalto" "interventi";"vecchiprezzi";"appalto" "interventi";"prezzi";"appalto" "locks";"ultimelavorazioni";"telef_code" "locks";"lavorazioni";"telef_code" "locks";"log";"utente" "locks";"vecchiprezzi";"utente" "locks";"prezzi";"utente" "centrali_telefoniche";"lavorazioni";"nomecentrale" "centrali_telefoniche";"secondi_nomi_centrali";"nomecentrale" "centrali_telefoniche";"persona";"indirizzo" "centrali_telefoniche";"tecnico";"indirizzo" "centrali_telefoniche";"lavorazioni";"regione"
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17 Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 471
|
ti ringrazio....cmq in genere a me i 2 campi sono uguali ma il nome delle colonne è diverso nelle 2 tabelle....
e queste 2 colonne con nome diverso ma con lo stessa valorizzazione del campo funzionano da ponte tra un db e l altro.. funziona lo stesso quello che hai scritto tu ? |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2005
Città: Napoli - Fuorigrotta
Messaggi: 471
|
Beh no... la query trova le tabelle con i campi aventi lo stesso nome!
Se invece cerchi tabelle che in campi differenti hanno gli stessi valori, la query va cambiata. Vedo se trovo qualcosa.
__________________
Acquisti sul mercatino: grabrihc, LucaXbox360, Yarsha,micanto1,American horizo,Fnac,schumyFast,STECCO,Ezechiele25,17 Vendite sul mercatino: musodatopo,alexbands,mspr,anto.wajo |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:37.