4 messages in com.mysql.lists.mysql-esRE: seleccionar filas que tengan 2 co...
FromSent OnAttachments
DTH66621 Mar 2007 15:15 
Grover Campos A.21 Mar 2007 15:50 
Esteban Vega21 Mar 2007 16:08 
Esteban Vega21 Mar 2007 16:16 
Subject:RE: seleccionar filas que tengan 2 coincidencias en otra tabla
From:Esteban Vega (este@2w.net)
Date:03/21/2007 04:08:02 PM
List:com.mysql.lists.mysql-es

Hola, si había tratado eso pero el problema es que eso solo selecciona la fila si (pxt.id_tipo = 1 AND pxt.id_tipo = 3) lo cual va a ser imposible ya que si es igual a 1 no es igual a 3,

Tabla 1 (p) | p.id | | 1 | | 2 | | 3 | | 4 |

Tabla 2 (pxt)

| pxt.id | p.id | pxt.id_tipo | | 1 | 1 | 2 | | 2 | 1 | 3 | | 3 | 2 | 3 | | 4 | 3 | 2 | | 5 | 4 | 3 |

Necesito que la consula me devuelva únicamente

| p.id | | 1 |

Pues p.id = 1 es el único que en la tabla pxt tiene conincidencia con 2 y con 3, mientras los demás solo tienen coincidencia con 2 o con 3 pero no con ambos al tiempo.

Gracias

-----Mensaje original----- De: Grover Campos A. [mailto:gcam@ing.puc.cl] Enviado el: Miércoles, 21 de Marzo de 2007 05:51 p.m. Para: mysq@lists.mysql.com Asunto: RE: seleccionar filas que tengan 2 coincidencias en otra tabla

Hola DTH666:

No utilices IN, utiliza AND, es decir:

(pxt.id_tipo = 1 AND pxt.id_tipo = 3)

IN quiere decir eso: ó 1 ó 3 AND es lo que necesitas.

Saludos

--------------------------------------------------------- Grover M. Campos Ancajima Ingeniero de Desarrollo DictUC - Pontificia Universidad Católica de Chile

-----Mensaje original----- De: DTH666 [mailto:dth@gmail.com] Enviado el: Miércoles, 21 de Marzo de 2007 18:16 Para: mysq@lists.mysql.com Asunto: seleccionar filas que tengan 2 coincidencias en otra tabla

Hola tengo una consulta que es la siguiente:

SELECT p.id, p.nombre as proyecto, p.id_rango_precio_desde, p.id_rango_precio_hasta, c.nombre as ciudad, ip.foto as foto_principal, ip.id_tipo as tipoFoto, pxt.id_tipo FROM `jos_proyectosi_proyectos` p

INNER JOIN `jos_proyectosi_fotos` ip on p.id = ip.id_proyecto && ip.id_tipo= 2 INNER JOIN `jos_ciudades` c on c.id = p.id_ciudad INNER JOIN `jos_proyectosi_proyectos_x_tipo` pxt on p.id = pxt.id_proyecto

WHERE 1 && pxt.id_tipo IN(1,3)

GROUP BY pxt.id_proyecto

LIMIT 0, 6;

Necesito que la consulta me devuelva únicamente las filas de `p` que en `pxt`.`id_tipo` tengan conicidencia con 1 Y con 3 pero esa consulta me devuelve si conicide con 1 Y/O 3,

Por fa una ayuda. Gracias