Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

308
Vistas
MYSQL une 3 tablas pero incluye todas las filas en 2 tablas

Tengo una configuración de 3 mesas (Sucursales, Producto y Residuos). El objetivo es obtener un resultado que incluya todas las sucursales habilitadas, con todos los productos habilitados y sus desperdicios durante toda la semana

Tabla: Sucursales

identificación Nombre de la sucursal Está habilitado
1 rama grande 1
2 Rama Mediana 0
3 Rama pequeña 1

Tabla: Residuos

identificación Identificación de la sucursal ID del Producto Número de la semana Lun martes casarse Jue Vie Se sentó sol
1 1 1 30 10 0 5 0 0 0 0

Tabla: Producto

identificación Nombre Está habilitado
1 Pan 1
2 Crema 1
3 Arroz 1
4 Leche 0

Resultado ideal

residuos.id identificación de la sucursal ramas.nombre Número de la semana ID del Producto nombre del producto Lun martes casarse Jue Vie Se sentó sol
1 1 rama grande 30 1 Pan 10 0 5 0 0 0 0
nulo 1 rama grande nulo 2 Crema nulo nulo nulo nulo nulo nulo nulo
nulo 1 rama grande nulo 3 Arroz nulo nulo nulo nulo nulo nulo nulo
nulo 3 Rama pequeña nulo 1 Pan nulo nulo nulo nulo nulo nulo nulo
nulo 3 Rama pequeña nulo 2 Crema nulo nulo nulo nulo nulo nulo nulo
nulo 3 Rama pequeña nulo 3 Arroz nulo nulo nulo nulo nulo nulo nulo

Intento de consulta SQL

 SELECT waste.id, product.id, product.name, product.is_enabled waste.product_id, waste.id, week_number, waste.branch_id, branches.id, branches.branch_name, branches.is_enabled, mon, tue, wed, thu, fri, sat, sun FROM `product` LEFT JOIN waste ON product.id = waste.product_id LEFT JOIN branches;

¿Qué tipo de unión se debe utilizar para lograr este resultado?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Frist CROSS JOIN dos tablas maestras (sucursal y producto) y recupere solo la sucursal y el producto habilitados y use este resultado como subconsulta . Luego, a la izquierda, únase a la tabla de desechos con la subconsulta para obtener el resultado deseado.

 -- MySQL SELECT w.id wast_id, t.branch_id , t.branch_name, w.week_number , t.product_id, t.product_name , w.mon, w.tues, w.wed, w.thu , w.fri, w.sat, w.sun FROM (select b.id branch_id , b.branch_name , p.id product_id , p.name product_name from Branches b cross join Product p where b.is_enabled = 1 and p.is_enabled = 1) t left join Waste w on t.branch_id = w.branch_id and t.product_id = w.product_id order by t.branch_id, t.product_id;

Consulte esta URL https://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=4a25c2ce1f1af6729a0cfe34d8998eb6

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda