Encontrar entradas na tabela um MySQL com base nas condições em outra tabela
-
03-07-2019 - |
Pergunta
Eu tenho uma tabela de hardware e uma mesa de incidentes. Cada hardware tem uma marca única, e os incidentes estão ligados ao tag.
Como posso selecionar todo o hardware que tem pelo menos um incidente listado como não resolvido?
Eu não posso apenas fazer uma junção, porque, então, se um pedaço de hardware teve várias questões não resolvidas, ele iria aparecer várias vezes.
Solução
select distinct(hardware_name)
from hardware,incidents
where hardware.id = incidents.hardware_id and incidents.resolved=0;
Outras dicas
Algo como isso deve fazê-lo:
Select A.HardwareID A.HadwareName, B.UnresolvedCount
From (Hardware A)
Inner Join
(
Select HardwareID, Count(1) As UnresolvedCount
From Incidents
Where Resolved = 0
Group By HardwareID
) As B On A.HardwareID = B.HardwareID
Este também pode trabalho
SELECT hd.name, inc.issue, FROM hardware hd INNER JOIN inc ON hd.tag = inc.tag AND inc.issue = 'unresolved' group by hd.name
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow