consulta mysql

(1/2) > >>

OssoH:
Os muestro por ejemplo los datos de un producto concreto :
SELECT * FROM ps_product_tag_special ts WHERE id_product=200000102

me devuelve :
id_product   id_tag_special
200000102   1
200000102   8
200000102   14
200000102   15

Quiero por ejemplo una SQL (MYSQL) que me devuelva los id_product  que tengan en su id_tag_special tanto el 8 como el 15.

Lo he intentado con la query :
SELECT DISTINCT(ts.id_product)
FROM ps_product_tag_special ts
WHERE ts.id_tag_special IN (8,15)

pero no me sirve porque me devuelve los id_product que tengan 8 o 15. 
Yo quiero la operación sea un AND y no un OR.

¿alguna sugerencia? Gracias

WHK:
Citar

Quiero por ejemplo una SQL (MYSQL) que me devuelva los id_product  que tengan en su id_tag_special tanto el 8 como el 15.

Citar

pero no me sirve porque me devuelve los id_product que tengan 8 o 15.

Pero no es eso lo que buscabas?, creo que no entendí bien, necesitas obtener todos los id_product que tengan 8 o 15 y justamente eso es lo que te muestra de resultado la base de datos.

Citar

Yo quiero la operación sea un AND y no un OR.

En ves de:

Código:

WHERE ts.id_tag_special IN (8,15)

Debería ser:

Código:

WHERE ts.id_tag_special = 8 AND ts.id_tag_special =15

OssoH:
Quiero obtener los id_product que tengan 8 y 15

Si utilizo la función IN de mysql no me sirve porque es como si hiciera un OR y no busco eso.

OssoH:
Creo que ya lo he solucionado. Voy a comprobarlo bien

Código:

SELECT id_product, id_tag_special
FROM ps_product_tag_special
WHERE id_tag_special IN (8,15)
GROUP BY id_product
HAVING COUNT(DISTINCT id_tag_special) = 2

Carloswaldo:
Yo creo que eso último que hiciste debería funcionar, siempre que la combinación id_product id_tag_special sea única.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente