我有一張硬件表和一個事件表。每個硬件都有唯一的標籤,事件與標籤相關聯。根據另一個表上的條件在一個MySQL表中查找條目
如何選擇所有至少有一個事件列爲未解決的硬件?
我不能只是做一個連接,因爲如果一塊硬件有多個未解決的問題,它會顯示多次。
我有一張硬件表和一個事件表。每個硬件都有唯一的標籤,事件與標籤相關聯。根據另一個表上的條件在一個MySQL表中查找條目
如何選擇所有至少有一個事件列爲未解決的硬件?
我不能只是做一個連接,因爲如果一塊硬件有多個未解決的問題,它會顯示多次。
select distinct(hardware_name)
from hardware,incidents
where hardware.id = incidents.hardware_id and incidents.resolved=0;
像這樣的東西應該這樣做:
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
這也可以工作
SELECT hd.name, inc.issue, FROM hardware hd INNER JOIN inc ON hd.tag = inc.tag AND inc.issue = 'unresolved' group by hd.name
我不認爲硬件表將有一個indident_id,因爲可以有多個事件相同的硬件。它應該是相反的。 – 2008-10-16 19:49:35