Cita:
Iniciado por max_mouse699
Hola marisolphp.
Muchas gracias por tu respuesta, la probe y el filtyrado de informacion me funciona, tu manera es mas simple, la mia tambien funcionaba pero era mas compleja.
Pero el problema ahora retoma al verdadero titulo del tema. Lo que sucede es que si quito la condicion WHERE con todos sus campos, me muestra solo dos articulos como resultado de la consulta, y debo entender que esos dos articulos, son solo los articulos que tienen asociada alguna etiqueta, los que no tiene asociado etiqueta, no los muestra.
La consulta ahora es como poder mostrar todos los articulos, esto quiere decir, los que estan con etiquetas y los que estan sin etiqueta ?
OJO: cuando yo realice la consulta en un comienzo, en el primer post menciono lo que me ocurre, que se me repiten registros de los articulos que no tienen ninguna asociacion con etiqueta:
De antemano muchas gracias.
Saludos.
Ahh si lo que quieres es que muestre todos tus articulos y aparte las etiquetas de solo cierto nombre creo que la consulta si sería con left join algo así
Código MySQL:
Ver original bodfam.descripcion
AS familia
, bodestart.descripcion
AS 'nombre_estado_articulo', bum.descripcion
AS unidad_medida
, bodmar.descripcion
AS marca
, bodmod.descripcion
AS modelo
, bodart.*
FROM bdsistema.bodega_articulo bodart
LEFT JOIN bdsistema.bodega_familia bodfam
ON bodfam.id_interno
= bodart.id_familia
LEFT JOIN bdsistema.bodega_unidad_medida bum
ON bum.id_interno
= bodart.id_unidad
LEFT JOIN bdsistema.bodega_marca bodmar
ON bodmar.id_interno
= bodart.id_marca
LEFT JOIN bdsistema.bodega_modelo bodmod
ON bodmod.id_interno
= bodart.id_modelo
LEFT JOIN bdsistema.bodega_estado bodestart
ON bodestart.id_interno
= bodart.estado_articulo
and INSTR(bodeti.descripcion
, 'carroceria') > 0 left JOIN bdsistema.bodega_etiqueta_articulo bodetiart
ON bodetiart.id_articulo
= bodart.id_interno
left JOIN bdsistema.bodega_etiquetas bodeti
ON bodeti.id_interno
= bodetiart.id_etiqueta
si ves el filtro realmente iría en el left join de la tabla de etiquetas
Otra forma sería un left join con un select, algo así:
Código MySQL:
Ver original bodfam.descripcion
AS familia
, bodestart.descripcion
AS 'nombre_estado_articulo', bum.descripcion
AS unidad_medida
, bodmar.descripcion
AS marca
, bodmod.descripcion
AS modelo
, bodart.*
FROM bdsistema.bodega_articulo bodart
LEFT JOIN bdsistema.bodega_familia bodfam
ON bodfam.id_interno
= bodart.id_familia
LEFT JOIN bdsistema.bodega_unidad_medida bum
ON bum.id_interno
= bodart.id_unidad
LEFT JOIN bdsistema.bodega_marca bodmar
ON bodmar.id_interno
= bodart.id_marca
LEFT JOIN bdsistema.bodega_modelo bodmod
ON bodmod.id_interno
= bodart.id_modelo
LEFT JOIN bdsistema.bodega_estado bodestart
ON bodestart.id_interno
= bodart.estado_articulo
and bdsistema.bodega_etiqueta_articulo bodetiart
inner JOIN bdsistema.bodega_etiquetas bodeti
ON bodeti.id_interno
= bodetiart.id_etiqueta
where INSTR(bodeti.descripcion
, 'carroceria') > 0) as tablaeti
ON tablaeti.id_articulo
= bodart.id_interno
Lo que importa es que primero tienes que filtrar la tabla de las etiquetas y luego ligarla con tu tabla de articulos