+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Left Join multitabella

  1. #1
    ecommerciando non è in linea Novello
    Post
    5

    Question Left Join multitabella

    Salve a tutti, sono nuovo di mysql, e non riesco a creare una query adatta ad un problema che dovrei risolvere.
    Ho un database con varie tabelle (ovviamente :-)), ho la necessita di concatenare dei campi di una stessa tabella e fino qui nessun problema, il problema sorge quando devo creare una left join ad un altra tabella, mi spiego meglio con il codice della query creata:

    SELECT *, CONCAT(vetture.modello,' ',vetture.versione,' ',CAST(vetture.anno AS CHAR)) AS vettura FROM tblVettureLampadine AS vetture, tblMarcheAuto AS marche, tblLampadine AS lampadine WHERE (marche.id=vetture.marca AND vetture.marca=12) AND vetture.id=lampadine.vettura ORDER BY vetture.modello, vetture.anno

    Così la query funziona magnificamente, ma il problema però è nell'ultima join, non essendo una left join, mi restituisce solo i dati che hanno una corrispondenza, invece ho bisogno di visualizzarli comunque tutti e laddove non ci sia corrispondenza la valorizzi a null.... Ho provato un po di varianti ma nulla... Qualcuno che mi aiuta??? Grazie

  2. #2
    L'avatar di gibra
    gibra non è in linea Amanuense
    Luogo
    Breganze (VI)
    Post
    6,011

  3. #3
    L'avatar di +m+
    +m+
    +m+ non è in linea Scribacchino
    Post
    922
    Non è che abbia capito benissimo, ma nulla ti vieta di fare un JOIN e un LEFT JOIN, o due LEFT JOIN etc
    codice:
    SELECT qualcosa FROM   
    tblVettureLampadine
    JOIN   tblMarcheAuto ON tblvetturelampadine.marche=tblmarcheauto.marca
    LEFT   JOIN tbllampadine on  tblvetturelampadine.id=tbllampadine.vettura
    WHERE  vetture.marca=12
    order by ...

  4. #4
    ecommerciando non è in linea Novello
    Post
    5
    Quote Originariamente inviato da gibra Visualizza il messaggio
    Hai dimenticato qualcosa?

    Non c'è nessuna LEFT JOIN.
    Grazie per la risposta, so che non c'è nessuna left join, la questione è che senza una left join, quindi con una inner join normale, funziona, se invece cerco di inserire una left join mi da errore...

    Cristian

  5. #5
    ecommerciando non è in linea Novello
    Post
    5
    Quote Originariamente inviato da +m+ Visualizza il messaggio
    Non è che abbia capito benissimo, ma nulla ti vieta di fare un JOIN e un LEFT JOIN, o due LEFT JOIN etc
    codice:
    SELECT qualcosa FROM   
    tblVettureLampadine
    JOIN   tblMarcheAuto ON tblvetturelampadine.marche=tblmarcheauto.marca
    LEFT   JOIN tbllampadine on  tblvetturelampadine.id=tbllampadine.vettura
    WHERE  vetture.marca=12
    order by ...
    Ti ringrazio per la risposta, il fatto è che non riesco ad inserire la left join nella query indicata.

  6. #6
    ecommerciando non è in linea Novello
    Post
    5

    Risolto

    Alla fine il problema era nella query, o meglio in come la gestisce c# o il provider di mysql per .net.
    Per uno strano motivo con più join non accetta l'order by finale.
    Ho comunque risolto in un altro modo....

    Grazie

  7. #7
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    Luogo
    Prato
    Post
    2,681
    sarebbe doveroso da parte tua postare la soluzione per i posteri.
    Sono stato nella terra del terrore e dei Vampiri...la transilvania? No!..in Banca.
    A Lupara?Min***a...Tecnologia Sicula è!

  8. #8
    ecommerciando non è in linea Novello
    Post
    5
    Mi scuso, non ho postato la soluzione inquanto non ho cambiato nulla, semplicemente ho tolto Order By alla fine della mia query...
    Resto comunque a disposizione per eventuali richieste d' aiuto

+ Rispondi al Thread

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi