ciao a tutti,

ho un piccolo problema di logica su questa query:

SELECT DISTINCT aar.id_attivita AS id_record, a.ordine AS ordine_prod, a.foto1 AS foto_attivita, co.comune_it, a.titolo_it, a.indirizzo, a.cap, a.localita, a.tel
FROM (((attivita AS a INNER JOIN attivita_cat AS c ON a.id_attivita_cat=c.id_attivita_cat)
LEFT OUTER JOIN comuni AS co ON a.id_comune = co.id_comune)
LEFT OUTER JOIN attivita_adds_relazioni AS aar ON a.id_attivita = aar.id_attivita)
WHERE a.online=1 AND aar.id_attivita_adds IN (1,2,4)
ORDER BY a.titolo_it ASC


semplificando, la parte che mi crea problema è questa:

SELECT DISTINCT id_attivita FROM attivita_adds_relazioni WHERE id_attivita_adds IN (1,2,4)

dove la tabella attivita_adds_relazioni è così strutturata:

ID_ATTIVITA_ADDS_RELAZIONI
3
4
5
6
7
8
9
10
11
ID_ATTIVITA
63
207
207
224
257
257
224
257
252
ID_ATTIVITA_ADDS
1
1
2
1
1
2
4
4
4

vorrei che la query mi restituisse solo i record che hanno contemporanemente ID_ATTIVITA_ADDS uguale a 1, a 2 e a 4, in questo caso dovrebbe restituirmene solo 1

con la mia query però me ne restituisce 6, in pratica quelli che hanno almeno 1 degli attributi presenti.

ho provato anche con questa forma, ma non è il risultato che mi aspetto:

SELECT COUNT(*), id_attivita FROM attivita_adds_relazioni
WHERE id_attivita_adds IN (1,2,4)
GROUP BY id_attivita
HAVING COUNT(*)>1


Grazie in anticipo per l'aiuto