consulta mysql
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
[#] Página Siguiente