2015-04-22 45 views
-2
$AcceptEventCount = mysql_query("SELECT COUNT(*) as count, tblDevices.name, tblEvents.sentdeviceid FROM tblDevices,tblEvents WHERE tblDevices.deviceid = tblEvents.sentdeviceid 
GROUP BY tblEvents.sentdeviceid ORDER BY count DESC"); 

$DeclineEventCount = mysql_query("SELECT COUNT(*) as cnt, tblDevices.name, tblDeclinedEvents.deviceid FROM tblDevices,tblDeclinedEvents WHERE tblDevices.deviceid = tblDeclinedEvents.deviceid 
GROUP BY tblDeclinedEvents.deviceid ORDER BY cnt DESC"); 

我是新來合併php mysql中的兩個查詢。我嘗試過工會,但我無法獲得理想的結果。mysql合併兩個查詢,從兩個單獨的列中獲得每個值的計數?

基本上我想從表tbldevices中獲得接受的事件和設備的拒絕事件的計數。這裏涉及三張桌子。誰能幫我這個?

這就是我試過的!

SELECT COUNT() as count, tblDevices.deviceid,null,tblEvents.sentdeviceid 
from tblEvents,tblDevices 
WHERE tblEvents.sentdeviceid = tblDevices.deviceid 
GROUP BY tblEvents.sentdeviceid 

UNION 

SELECT COUNT() as cnt,tblDevices.deviceid,tblDeclinedEvents.deviceid,null 
from tblDevices,tblDeclinedEvents 
WHERE tblDeclinedEvents.deviceid = tblDevices.deviceid 
GROUP BY tblDeclinedEvents.deviceid 
+1

請向我們展示您的嘗試,或許您非常接近正確的解決方案,並且我們只需要進一步給您一些提示。 :) – Jordumus

+0

所以在php $行['count']即時通訊希望獲得接受的事件計數和$行['cnt']我希望得到設備的拒絕事件計數。 –

+0

請編輯您的原始問題與此信息:) – Jordumus

回答

0

我認爲這是不可能的(至少不使用子查詢)。原因是該組需要在字段上完成,但接受和拒絕的事件不是由字段而是由表來標識的。

如果你不能修改表結構,有2個查詢是合理的選擇。如果您可以更改表格結構,我會建議添加一個存儲驗證狀態的列。