Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    [SQL] utilizzo funzione IF

    Salve ragazzi avrei bisogno di una cosa del genere:

    codice:
    SELECT s.id AS sid,s.nome AS snome,s.durata_scheda AS sdurata_scheda,s.descrizione AS sdescrizione,s.livello AS slivello,s.obiettivo AS sobiettivo,o.nome AS onome,o.cognome AS ocognome, s.id FROM opt_scheda as s INNER JOIN opt_operatore as o ON s.id_operatore=o.id WHERE (s.id='45' AND s.id_cliente='3')
    


    praticamente dovrei fare in modo che

    codice:
    INNER JOIN opt_operatore as o ON s.id_operatore=o.id

    venga aggiunto solo nel caso il campo s.id_operatore è diverso da NULL.

    Come è possibile fare una cosa del genere , usando solo SQL, magari attraverso la funzione IF ? ? ?

    Grazie anticipatamente.
    Con i sogni possiamo conoscere il futuro...

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    campo is not null
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Si, questo mi era chiaro, ma vorrei fare tutto in SQL, cioè effettuare l'inner se s.id_operatore IS NOT NULL, mentre nessuuna INNER altrimenti ( ovviamente devo anche evitare di fare la proiezione dei campo o.nome e o.cognome...), potresti illustarmi più dettagliatamente la cosa. Grazie.
    Con i sogni possiamo conoscere il futuro...

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    SELECT s.id AS sid,s.nome AS snome,s.durata_scheda AS sdurata_scheda,s.descrizione AS sdescrizione,s.livello AS slivello,s.obiettivo AS sobiettivo,o.nome AS onome,o.cognome AS ocognome, s.id FROM opt_scheda as s INNER JOIN opt_operatore as o ON s.id_operatore=o.id WHERE (s.id='45' AND s.id_cliente='3') and s.id_operatore is not null
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Quote Originariamente inviata da badaze Visualizza il messaggio
    SELECT s.id AS sid,s.nome AS snome,s.durata_scheda AS sdurata_scheda,s.descrizione AS sdescrizione,s.livello AS slivello,s.obiettivo AS sobiettivo,o.nome AS onome,o.cognome AS ocognome, s.id FROM opt_scheda as s INNER JOIN opt_operatore as o ON s.id_operatore=o.id WHERE (s.id='45' AND s.id_cliente='3') and s.id_operatore is not null

    Non è chiaro quello che ho chiesto:

    Se s.id_operatore non è NULL eseguo l'inner join con operatore, altrimenti non eseguo l'inner
    Con i sogni possiamo conoscere il futuro...

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Era chiaro si chiaro no. Nel tuo esempio metti campi presenti nelle due tabelle quindi in contraddizione con la domanda.


    Comunque.


    Fai una query come quella che ho postato poi UNION un'altra query senza l'inner ma con s.id_operatore is null.
    Nella UNION devi avere lo stesso numero di campi e gli stessi tipi. Quindi con la seconda query per i dati che verrebbero dalla inner se ci fosse devi mettere delle costanti.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.