Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714

    [MySql] - Problema query IN

    Ciao a tutti.
    Piccolo problema con una query MySQL.

    Ho la seguente tabella

    opzioni

    con due campo, macchina e opzione, cosi compilata

    macchina; opzione
    5; 2
    5; 3
    5; 6
    5; 8

    Con la seguente query

    Codice PHP:

    SELECT macchina FROM opzioni WHERE opzione IN
    (34567910GROUP BY macchina 
    Lui mi restituisce 5, perche' trova alcune delle opzioni contenute nella IN. Solo che io vorrei che se una non MATCHA non mi deve restituire il risultato. Nella query, cerco l'opzione 9 e 10 ad esempio che la macchina 5 non ce l'ha. Come posso fare?

    grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select macchina,group_concat(distinct opzione order by opzione) as valori 
    from opzioni 
    group by macchina
    having valori = '3,4,5,6,7,9,10'

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    Si ok, ma in questo modo mi escludo la possibilita' di ricercare solo 1 o 2 opzioni.

    Perche' se la macchina ha l'opzione 3, 5, 6 e io cerco la 3 e la 6 con questa query non compare. Sbaglio?

    L'obbiettivo e', finche le opzioni cercate sono presenti ok. Se ce ne e 1 non presente, non mostra.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da Toniello
    Si ok, ma in questo modo mi escludo la possibilita' di ricercare solo 1 o 2 opzioni.

    Perche' se la macchina ha l'opzione 3, 5, 6 e io cerco la 3 e la 6 con questa query non compare. Sbaglio?

    L'obbiettivo e', finche le opzioni cercate sono presenti ok. Se ce ne e 1 non presente, non mostra.
    Prova così allora

    codice:
    select distinct o1.macchina from opzioni as o1
    inner join opzioni as o2 on o1.macchina = o2.macchina
    inner join opzioni as o3 on o1.macchina = o3.macchina
    where o1.opzione = 2 and o2.opzione = 3 and o3.opzione = 6

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.