Problemas com SELECT RIGHT JOIN (mysql - php)

SQL

MySQL

PHP

Banco de Dados

07/03/2018

Bom dia.
Estou tendo o seguinte problema: Tenho duas tabelas, A e B. Na tabela A, possuo uma coluna com nomes de máquinas (Cortadeira, Enfardadeira, Empacotadeira e Rebobinadeira) e na outra coluna algumas causas que as fizeram parar (Como Falta de Energia Elétrica, Troca de Bobina, etc).
Na Tabela B, possuo uma coluna com a listagem de todos os motivos possíveis (Na Tabela A estão apenas os que já ocorreram, cada linha mostra o nome de uma máquina e o motivo de sua parada.)

A minha intenção é que o código me devolva o número de vezes que uma máquina específica ficou parada por cada motivo, retornando o valor 0 caso ela não tenha sido parada por aquele. Estou usando o seguinte código:

SELECT B.TodosOsMotivos, A.MotivosQueAconteceram, A.Maquinas,
COUNT(A.MotivosQueAconteceram)as NumeroDeOcorrencias
FROM A
RIGHT join B on A.MotivosQueAconteceram = B.TodosOsMotivos
WHERE A.Maquinas = 'Cortadeira' OR A.Maquinas IS NULL
GROUP by MotivosQueAconteceram, Maquinas, B.TodosOsMotivos
order by B.TodosOsMotivos

Dessa forma ela me diz quantas vezes a Cortadeira ficou parada por um motivo X e retorna NULL quando nenhuma máquina parou por algum motivo. O problema é que quando a CORTADEIRA não parou por um motivo Y mas OUTRA MÁQUINA parou, ele simplesmente não me retorna valor algum, quando eu precisava que me retornasse 0/NULL. O QUE POSSO FAZER PARA MUDAR ISSO?
Renata

Renata

Curtidas 0

Melhor post

Douglas Sousa

Douglas Sousa

07/03/2018

SELECT B.TodosOsMotivos, A.MotivosQueAconteceram, A.Maquinas, 
COUNT(A.MotivosQueAconteceram)as NumeroDeOcorrencias 
FROM A 
OUTER join B on A.MotivosQueAconteceram = B.TodosOsMotivos 
WHERE A.Maquinas = 'Cortadeira' OR A.Maquinas IS NULL 
GROUP by MotivosQueAconteceram, Maquinas, B.TodosOsMotivos 
order by B.TodosOsMotivos


tente com o outer join ele todos registros.
GOSTEI 2

Mais Respostas

Edson Venancio

Edson Venancio

07/03/2018

Tentou usar left Join ?
GOSTEI 0
POSTAR