代码之家  ›  专栏  ›  技术社区  ›  Asmor

基于另一个表的条件在一个MySQL表中查找条目

  •  2
  • Asmor  · 技术社区  · 16 年前

    我有一张硬件表和一张事故表。每个硬件都有一个唯一的标记,事件都绑定到该标记。

    如何选择至少有一个事件列为未解决的所有硬件?

    我不能只做一个连接,因为如果一个硬件有多个未解决的问题,它会出现多次。

    3 回复  |  直到 16 年前
        1
  •  10
  •   Richard Harrison    16 年前
    select distinct(hardware_name) 
    from hardware,incidents 
    where hardware.id = incidents.hardware_id and incidents.resolved=0;
    
        2
  •  3
  •   Eric Hogue    16 年前

    像这样的东西应该可以做到:

    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
    
        3
  •  0
  •   Passionate Coder    7 年前

    这也可以奏效

    SELECT hd.name, inc.issue, FROM hardware hd INNER JOIN inc ON hd.tag = inc.tag AND inc.issue = 'unresolved' group by hd.name