+ Rispondi alla Discussione
Risultati da 1 a 4 di 4

[SQL] Join multipli su tabelle senza relazioni esplicite

Ultimo Messaggio di paocavo il:
  1. #1
    User L'avatar di sherlock
    Data Registrazione
    Sep 2006
    Località
    Italia, Bologna
    Messaggi
    286

    [SQL] Join multipli su tabelle senza relazioni esplicite

    ciao a tutti,
    devo fare una query SQL con un JOIN su due tabelle che non sono collegate tra loro, ovvero:

    SELECT * FROM t1 JOIN t2 ON t1.pippo=t2.id JOIN t3 ON t1.pluto=t3.id WHERE....

    come posso fare? dato che t2 e t3 non so
    non in alcuna relazione fra loro?
    grazie!

    Marco

  2. #2
    User L'avatar di tonyx
    Data Registrazione
    Apr 2006
    Località
    Ischia
    Messaggi
    248
    Secondo me se non c'è relazione non c'è modo di joinarle, devi creare una relazione tra le due tabelle, poi essendo un problema molto generico non posso valutare elementi precisi per poterti aiutare di più.
    Conoscete Ischia? E' bellissima! - Antonio Iervolino

  3. #3
    Esperto L'avatar di madai
    Data Registrazione
    Jun 2006
    Messaggi
    640
    Come dice tonyx esponi meglio il problema. Se le 2 tab non hanno un id in comune in che modo intendi joinarle? Se non lo sai allora spiega in maniera più ampia il problema, così da poter lavorare insieme ad una soluzione.


    Ciao
    Cerchi un hotel a Ischia? Pronto Ischia.

  4. #4
    Moderatore L'avatar di paocavo
    Data Registrazione
    Mar 2006
    Località
    Lecce, Italy
    Messaggi
    1,016
    Aggiungi paocavo su Facebook Aggiungi paocavo su Linkedin
    Citazione Originariamente Scritto da sherlock Visualizza Messaggio
    ciao a tutti,
    devo fare una query SQL con un JOIN su due tabelle che non sono collegate tra loro, ovvero:

    SELECT * FROM t1 JOIN t2 ON t1.pippo=t2.id JOIN t3 ON t1.pluto=t3.id WHERE....

    come posso fare? dato che t2 e t3 non so
    non in alcuna relazione fra loro?
    grazie!

    Marco
    Se la relazione non esiste nel DB puoi comunque fare la join via codice ma rallenterà un pò l'elaborazione (dipende dal numero di records).
    In ogni modo NON fare più di UN JOIN per ogni query di questo tipo (senza relazione esplicita). Quindi:

    Codice:
    SELECT * FROM t1 INNER JOIN t2 
                         ON t1.pippo=t2.id 
     WHERE....
    PS: Se ti serve necessariamente il dato di una terza tabella collegata prenditi solo l'ID ( cioè la chia ve esterna presente in una delle due tabelle: t1 o t2) poi, in seguito (via codice) te lo vai a decodificare con una nuova semplice query di lookup (select descr from t3 where t3.id=chiave_esterna_di_prima.

    Altro consiglio, non usare "select * " ma specifica lo stretto necessario...
    select campo1, campo2, ... from t1 inner join t2 ....
    Ultima modifica di paocavo; 25-08-07 alle 13:13

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.