Php 从表中选择“计数”,其中列是连接的,但具有相关其他列的其他行没有特定值
我的MySQL数据库中有一个表,其中有列: 呼唤 事件 我想选择事件为“ENTERQUEUE”的所有行,我正在以下查询中执行此操作:Php 从表中选择“计数”,其中列是连接的,但具有相关其他列的其他行没有特定值,php,mysql,sql,Php,Mysql,Sql,我的MySQL数据库中有一个表,其中有列: 呼唤 事件 我想选择事件为“ENTERQUEUE”的所有行,我正在以下查询中执行此操作: SELECT count(*) FROM voipnow.ast_queue_log WHERE queuename = '0536*401' AND DATE(time) = '2014-03-07' AND event = 'ENTERQUEUE' ORDER BY time DESC; 但我只想显示事件列不等于CONNECT的行数,其中CALID等
SELECT count(*)
FROM voipnow.ast_queue_log
WHERE queuename = '0536*401'
AND DATE(time) = '2014-03-07'
AND event = 'ENTERQUEUE'
ORDER BY time DESC;
但我只想显示事件列不等于CONNECT的行数,其中CALID等于上述查询中的CALID列
SELECT count(*)
FROM voipnow.ast_queue_log
WHERE queuename = '0536*401'
AND DATE(time) = '2014-03-07'
AND event <> 'CONNECT'
and callid not in (SELECT callid
FROM voipnow.ast_queue_log
WHERE queuename = '0536*401'
AND DATE(time) = '2014-03-07'
AND event = 'ENTERQUEUE')
ORDER BY time DESC;
你的描述留下了解释的余地。我的理解是: 其中不存在具有相同callid和event='CONNECT'的行
你可以试着缩短标题,把细节放在问题的主体部分。
SELECT count(*)
FROM voipnow.ast_queue_log v1
WHERE queuename = '0536*401'
AND date(time) = '2014-03-07'
AND event = 'ENTERQUEUE'
AND NOT EXISTS (
SELECT 1
FROM voipnow.ast_queue_log v2
WHERE v2.callid = v1.callid
AND v2.event = 'CONNECT'
)