Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: OssoH en 23 Junio 2021, 17:50 pm



Título: consulta mysql
Publicado por: OssoH en 23 Junio 2021, 17:50 pm
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



Título: Re: consulta mysql
Publicado por: WHK en 23 Junio 2021, 18:36 pm
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


Título: Re: consulta mysql
Publicado por: OssoH en 23 Junio 2021, 18:41 pm
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.


Título: Re: consulta mysql
Publicado por: OssoH en 23 Junio 2021, 18:52 pm
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


Título: Re: consulta mysql
Publicado por: Carloswaldo en 24 Junio 2021, 06:50 am
Yo creo que eso último que hiciste debería funcionar, siempre que la combinación id_product id_tag_special sea única.


Título: Re: consulta mysql
Publicado por: OssoH en 24 Junio 2021, 08:53 am
Funciona!! ya lo tengo arreglado.
Gracias