2008-10-16 66 views
2

我有一張硬件表和一個事件表。每個硬件都有唯一的標籤,事件與標籤相關聯。根據另一個表上的條件在一個MySQL表中查找條目

如何選擇所有至少有一個事件列爲未解決的硬件?

我不能只是做一個連接,因爲如果一塊硬件有多個未解決的問題,它會顯示多次。

回答

10
select distinct(hardware_name) 
from hardware,incidents 
where hardware.id = incidents.hardware_id and incidents.resolved=0; 
+0

我不認爲硬件表將有一個indident_id,因爲可以有多個事件相同的硬件。它應該是相反的。 – 2008-10-16 19:49:35

3

像這樣的東西應該這樣做:

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 
0

這也可以工作

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