Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

310
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda