[bglug] Mysql query

Luca Rota luke.rota@gmail.com
Sab 5 Nov 2016 09:08:00 CET


Ciao,

Secondo me dovresti cambiare la condizione WHERE della tua query con
l'operatore "IN".
Dovresti recuperare dalla tua form la lista degli id_spec selezionati e poi
impostare una condizione del tipo:
WHERE s.id_spec IN ( 1, 2, 8,.... )
Spero di esserti stato utile.



Il giorno 5 novembre 2016 08:07, Roberto Santini <
roberto.santini89@gmail.com> ha scritto:

> Ciao a tutti, prima di chiedervi aiuto vi devo ringraziare per l'aiuto che
> mi avete dato nelle ultime mail... Grazie! È sempre molto prezioso.
>
> Ora, ho un database con le seguenti tabelle:
> - user: id, name
> - spec: id, label
> - spec_values: id, id_user,id_spec, value.
>
> Nella tabella spec ho alcune specifiche che possono essere assegnate agli
> utenti, tipo "email", "telefono",... e posso aggiungerle man mano a seconda
> della necessità. In spec_value ho il valore di queste specifiche, quindi il
> valore di email, di telefono,...
> Ora, ho predisposto un Form in cui posso selezionare gli utenti facendo un
> filtro su queste specifiche: posso selezionare quale spec filtrare e quale
> valore debba avere. Finché si tratta di una sola specifica non c'è
> problema. Quando sono più d'una però non so bene come fare. Se faccio:
>
> SELECT * FROM user u JOIN spec_values s ON.... WHERE (s.id_spec=1 and
> s.value=...) OR (s.id_spec=2 and s.value=...)
>
> ottengo gli utenti che hanno id_spec=1 O id_spec=2. Io voglio che valgano
> entrambe le condizioni, ma ovviamente se metto AND tra le due parentesi non
> ottengo nessun risultato. Ho provato anche utilizzando le sub query ma
> senza successo.
> Come posso fare?
> Spero di essermi spiegato...
>
> Grazie!
>
>
> --
> Sito BgLUG: http://www.bglug.it
> Mailing list: http://lists.linux.it/listinfo/bglug
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/bglug/attachments/20161105/413905ad/attachment.html>


Maggiori informazioni sulla lista bglug