Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Añadir WHERE en Left Join

Estas en el tema de Añadir WHERE en Left Join en el foro de Mysql en Foros del Web. Buenas a todos, he estado viendo un poco cómo realizar esto, espero puedan orientarme. La consulta es @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT productos.cod ...
  #1 (permalink)  
Antiguo 27/02/2016, 20:40
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Añadir WHERE en Left Join

Buenas a todos, he estado viendo un poco cómo realizar esto, espero puedan orientarme.

La consulta es

Código MySQL:
Ver original
  1. SELECT productos.cod,productos.cant_act,productos.p_mj,productos.p_jc,COUNT(control.idP) AS numMenos FROM productos LEFT JOIN control ON productos.cod=control.idP GROUP BY control.idP

Me devuelve algo así

cod | cant_act | p_mj | p_jc | numMenos
521 | 3 | 120 | 250 | 0
584 | 10 | 50 | 95 | 3
942 | 9 | 300 | 650 | 3

Sin embargo, necesito crear un WHERE en la consulta a la tabla control, para que me traiga donde la columna idG sea igual a 0. He probado algo así pero no me ha dado resultado.

Código MySQL:
Ver original
  1. [HIGHLIGHT="MySQL"]SELECT productos.cod,productos.cant_act,productos.p_mj,productos.p_jc,COUNT(control.idP) AS numMenos FROM productos LEFT JOIN control ON productos.cod=control.idP  WHERE control.idG = 0 GROUP BY control.idP
[/HIGHLIGHT]

cod | cant_act | p_mj | p_jc | numMenos
584 | 10 | 50 | 95 | 3
942 | 9 | 300 | 650 | 3

Ya que el producto 521 no tiene numMenos, imagino yo que no aparece, pero necesito que mi siga apareciendo aun tenga el 0.

Saludos y muchas gracias
  #2 (permalink)  
Antiguo 27/02/2016, 23:22
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Añadir WHERE en Left Join

Añadí un AND dentro de la condicional ON con la condicional que realizaba el WHERE, y la consulta en sí estaba bien, pero por una tontería estaba haciendo la agrupación por la FK (control.idP), dando que a veces algun producto si no estaba en la tabla control, nunca lo iba a agrupar, cambiando ello por la PK (productos.cod) está funcionando bien.

Etiquetas: join, left, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:04.