mysql合并两个查询,从两个单独的列中获取每个值的计数?

时间:2015-04-22 15:21:32

标签: php mysql

$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中合并两个查询。我用它尝试过工会,但我无法得到理想的结果。

基本上我想从表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 个答案:

答案 0 :(得分:0)

我认为这是不可能的(至少不使用子查询)。原因是需要在字段上进行分组,但接受和拒绝的事件不是由字段识别,而是由表格识别。

如果无法修改表结构,则有2个查询是合理的选择。如果您可以更改表结构,我建议添加一个存储验证状态的列。