Hola de nuevo LuZBinG:
Creo que efectivamente, entendí mal el enunciado del problema, y te dí una respuesta que no era, pero creo que tampoco termino de entender lo que necesitas
.
Vayamos por partes... partiendo de esta consulta:
Código MySQL:
Ver original+-------------+-------------+-------------+
| id_articulo | num_defecto | descripcion |
+-------------+-------------+-------------+
| 1 | 1287 | lata |
| 1 | 1288 | botella |
| 1 | 1289 | pastas |
| 1 | 1290 | pastas |
+-------------+-------------+-------------+
Observamos que para el artículo 1 existen 4 num_defecto (1287, 1288, 1289, 1290). Hasta aquí creo que no tenemos problemas... Ahora bien, si analizamos tu tabla detalle_articulo para estos num_defectos tenemos esto:
Código MySQL:
Ver original -> WHERE num_defecto
IN (1287, 1288, 1289, 1290) +------+-------------+----------+
| id | num_defecto | cantidad |
+------+-------------+----------+
| 234 | 1287 | 0 |
| 24 | 1287 | 0 |
| 23 | 1287 | 0 |
| 12 | 1288 | 1 |
| 1 | 1288 | 1 |
| 122 | 1288 | 1 |
| 46 | 1289 | 2 |
| 24 | 1289 | 0 |
| 264 | 1289 | 0 |
+------+-------------+----------+
Es decir, aparecen
9 registros debido a que
NO EXISTE NINGÚN DEFECTO PARA EL num_defecto = 1290 mi pregunta es, ¿Por qué pretendes regresar
12 registros como resultado final? por qué el resultado para el num_defecto = 1290 se debe repetir tres veces?
La consulta que pones te regresa 10 registros, es decir LOS NUEVE QUE CORRESPONDEN A LOS num_defecto que si existen MAS 1 REGISTRO NULL PARA INDICAR QUE NO EXISTE ningún registro para el num_defecto = 1290:
Código MySQL:
Ver originalmysql
> SELECT articulo_defecto.num_defecto
, detalle_articulo.cantidad
-> detalle_articulo
-> ON articulo_defecto.num_defecto
= detalle_articulo.num_defecto
-> WHERE articulo_defecto.id_articulo
= 1; +-------------+----------+
| num_defecto | cantidad |
+-------------+----------+
| 1287 | 0 |
| 1287 | 0 |
| 1287 | 0 |
| 1288 | 1 |
| 1288 | 1 |
| 1288 | 1 |
| 1289 | 2 |
| 1289 | 0 |
| 1289 | 0 |
+-------------+----------+
10 rows
in set (0.00 sec
)
¿¿¿Es esto lo que pretendes??? que el registro NULL aparezca tres veces en lugar de 1??? en base a qué criterio???
Saludos
Leo.