Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072

    Left Join su query e valore 1/0 in base al join

    Ciao a tutti, considerando una query del tipo:

    SELECT ... Events_Favorites.id AS Favorite ... LEFT OUTER JOIN Events_Favorites ON Events.id = Events_Favorites.id_Events AND Events_Favorites.UID='$uid'

    Come posso fare in modo che se non è presente nessun record in JOIN venga visualizzato il valore 0 e non il "null"?

    Inoltre, piuttosto che vedere Events_Favorites.id, è possibile visualizzare semplicemente 1 quando è presente (almeno) un record JOIN?

    Grazie

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Quindi nella SELECT, tra i campi scelti avrò


    (CASE WHEN Events_Favorites.id > 0 THEN 1 WHEN Events_Favorites.id **NULL** THEN 0 END)


    Corretto??


    Ma come identifico il valore null che ho quando non ci sono records in JOIN?

    Grazie

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Originariamente inviato da Valeria75_bis
    Quindi nella SELECT, tra i campi scelti avrò


    (CASE WHEN Events_Favorites.id > 0 THEN 1 WHEN Events_Favorites.id **NULL** THEN 0 END)


    Corretto??


    Ma come identifico il valore null che ho quando non ci sono records in JOIN?

    Grazie
    Il valore NULL lo prendi perché hai messo nella tua query una LEFT OUTER JOIN e quindi nella CASE lo visualizzi come 0.
    Ovviamente tu hai postato una parte della query, quindi la mia risposta può essere parziale, ad esempio potresti aver messo delle INNER JOIN che quindi potrebbero tagliarti il risultato.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Originariamente inviato da Joe Taras
    Il valore NULL lo prendi perché hai messo nella tua query una LEFT OUTER JOIN e quindi nella CASE lo visualizzi come 0.
    Ovviamente tu hai postato una parte della query, quindi la mia risposta può essere parziale, ad esempio potresti aver messo delle INNER JOIN che quindi potrebbero tagliarti il risultato.
    Scusa ma non ho capito nulla della tua risposta

    Cmq la LEFT l'ho utilizzata volutamente, non potevo usare la INNER come in altre parti della query!

  6. #6
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Originariamente inviato da Valeria75_bis
    Scusa ma non ho capito nulla della tua risposta

    Cmq la LEFT l'ho utilizzata volutamente, non potevo usare la INNER come in altre parti della query!
    Provo a spiegarmi meglio:
    se tu hai
    SELECT
    FROM tabA A
    LEFT OUTER JOIN tabB B
    ON A.id = B.fk_A
    INNER JOIN tabC C
    ON B.id = C.fk_B

    la left outer join che viene scritta nella prima parte viene tagliata dalla inner successiva tra B e C.

    Avendo postato una parte della query non so come hai relazionato la tua tabB e quindi potrebbe essere questo il motivo per cui non ti considera le colonne NULL

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Non è che "non mi considera le colonne NULL", io vorrei fare in modo che invece di visualizzare la colonna NULL il valore fosse convertito in 0 (quindi invece di visualizzare NULL,visualizzare 0 ......)


    E invece OK la prima parte del mio CASE?? (quello per visualizzare l'1)


    Grazie

  8. #8
    ... WHEN Events_Favorites.id = NULL ...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Ci sono arrivata da sola, alla fine!

    Non è = NULL come hai indicato tu ma IS NULL

    Grazie cmq

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 © 2026 vBulletin Solutions, Inc. All rights reserved.