Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    [MYSQL] Left Join problematico

    Ho due tabelle

    ADEMPIMENTI
    idadempimento; adempimento
    1; luce
    2; acqua
    3; gas
    4; affitto

    ADEMPIMENTICLIENTI
    id; idadempimento; idcliente
    11; 1; 500
    12; 1; 426
    13; 3; 500
    14; 2; 234

    Ponendo di voler estrarre i dati del cliente 500 vorrei l'elenco degli adempimenti e se il cliente ha associato un adempimento il suo id
    1; luce; 500
    2; acqua; null
    3; gas; 500
    4; affitto; null

    ho fatto così:
    codice:
     SELECT *, adempimenti.idadempimento as idad FROM `adempimenti` LEFT JOIN adempimenticlienti on adempimenti.idadempimento = adempimenticlienti.idadempimento WHERE (adempimenticlienti .idcliente='500'  OR scadenzeadcli.idcliente IS null)
    Con i miei dati reali ottengo si gli adempimenti inseriti, ma di quelli mancanti ne ho 1 su 3!
    Help!
    Grazie

  2. #2
    dove dichiari la tabella scadenzeadcli ?

  3. #3
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    è un refuso perchè ho semplificato i miei dati reali scadenzeadcli sarebbe adempimenticlienti
    Sorry!

  4. #4
    puoi ripostare la query corretta?

  5. #5
    comunque, prova questa

    codice:
    SELECT 	A.idadempimento,
    	A.adempimento, 
    	AC.idcliente
    FROM 
    	adempimenti A
    	LEFT JOIN adempimenticlienti AC on A.idadempimento = AC.idadempimento AND AC.idcliente='500'

  6. #6
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Ci ho provato anche prima, ma mi va in errore il forum! Ho messo anche su notepad copia e incollato la query ma nulla!
    Dalla query postata sopra bisognerebbe sostituire scadenzeadcli con adempimenticlienti.

    La mia idea era:
    - Prendi tutti gli adempimenti
    - fai un left join degli adempimenticlienti
    - se c'è l'id 500 metti i dati in alternativa metti l'id NULL con campi null

    Grazie

  7. #7

  8. #8
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Non avevo visto la tua query! Adattata ai miei dati FUNZIONAAAA!!!
    In pratica in questo modo prende tutti gli adempimenti e fa il left join solo se c'è l'idcliente giusto?
    Grazie

  9. #9
    optime! comunque, come vedi, è una left join semplice, non "problematica"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.