PDA

Visualizza la versione completa : [SQL] Selezione per categorie


trancegate
05-10-2006, 09:16
Un problema mi sorto, nel modo di selezionare da un database dei documenti che possono appartenere a pi categorie...
Vi illustro la situazione, come risultato di una query ho una cosa di questo tipo:

id nome category
6 requisiti sport
6 requisiti auto
2 finanze.doc auto

Come posso estrarre i documenti che appartengono sia alla categoria auto e sia alla categoria sport con una query SQL?

optime
05-10-2006, 09:55
... WHERE categoria='auto' OR categoria='sport'

oppure

... WHERE categoria IN ('auto', 'sport')

that easy!

trancegate
05-10-2006, 10:08
Ci avevo pensato anche io, ma non corretto, perch quella query mi torna i documenti che sono della categoria sport OPPURE della categoria auto...
optime, la tua query mi tornerebbe finanze.doc e requisiti... mentre io voglio la query che torna solo requisiti, siccome associato alle due categorie.
Io voglio estrarre quelli che appartengono a tutte e due le categorie... cio il documento requisiti appartiene alla categoria sport ed anche lla categoria auto... voglio che la query mi torna solo lui come elemento...
categorie e documenti sono in relazione molti a molti...
provo a farvi un'altro risultato di query...


id nomedoc category

4 pippo.doc sport

5 pluto.doc sport

6 sempronio musica

6 semprionio teatro

5 pluto.doc cinema

Voglio i documenti che sono singolarmente associati alle categorie sport e cinema...
pluto.doc soddisfa questi requisiti...
Che query SQL devo fare??

Nikk11
05-10-2006, 11:49
C dovresti far vedere la struttura delle tabelle e non il risultato di una query...
sarebbe pi facile aiutarti!

ciao :ciauz: :ciauz:

nonsoloC
05-10-2006, 12:13
Sono d'accordo con Nikk11 anche perch spero vivamente che nel tuo primo esempio tu abbia fatto un errore, qual' la chiave della tabella? Dimmi che id e hai sbagliato a scrivere 2 id uguali nell'esempio...

trancegate
05-10-2006, 12:14
Vi d io la risposta al problema, che ho risolto grazie all'aiuto di un mio collega...
Basta fare un group by id having count(id)=[numerocategorie] sul risultato della query...

Loading