Php 如何获取没有对的值(根据sessionID,登录没有注销对)
我正在写一份申请报告,我有一个问题,我不知道如何解决它。我有一个用户名、日期和时间、事件和会话ID数据表。每个登录和注销对都有唯一的sessionID。我想根据sessionID提取其中的logu-IN没有logu-OUT对。如果可能,我希望在MYSQL中完成,如果不可能,那么在PHP中完成 有一个代码,它为我提供了所有事件的登录和注销表:Php 如何获取没有对的值(根据sessionID,登录没有注销对),php,mysql,Php,Mysql,我正在写一份申请报告,我有一个问题,我不知道如何解决它。我有一个用户名、日期和时间、事件和会话ID数据表。每个登录和注销对都有唯一的sessionID。我想根据sessionID提取其中的logu-IN没有logu-OUT对。如果可能,我希望在MYSQL中完成,如果不可能,那么在PHP中完成 有一个代码,它为我提供了所有事件的登录和注销表: SELECT username, date_time, event, sessionID FROM userevent WHERE username lik
SELECT username, date_time, event, sessionID FROM userevent
WHERE username like 'User1'
AND date_time BETWEEN (NOW() - INTERVAL 500 DAY) AND (NOW() + INTERVAL 1 DAY)
ORDER BY date_time DESC
表:
Username Date_time Event SessionID
User1 5.3.2015 13:26:50 LOG_IN a1e02a779d403df0b7ddd099db14
User1 5.3.2015 11:10:48 LOG_OUT 72651b92ffd2cc5890548fdafe91
User1 4.3.2015 23:37:03 LOG_IN 72651b92ffd2cc5890548fdafe91
User1 4.3.2015 23:36:50 LOG_OUT b10a40d99c9b0eae3d5cbc8947a0
User1 27.2.2015 12:44:00 LOG_IN b10a40d99c9b0eae3d5cbc8947a0
User1 27.2.2015 12:22:14 LOG_OUT ff210bb81e7550d7d5b24df11d55
User1 22.2.2015 6:20:51 LOG_IN ff210bb81e7550d7d5b24df11d55
User1 22.2.2015 6:20:15 LOG_OUT c9b40e6eec5616a90573979b54fd
User1 18.2.2015 12:13:15 LOG_IN c9b40e6eec5616a90573979b54fd
User1 18.2.2015 12:08:41 LOG_OUT 83f068cd8c9c04b1f955495d8c59
User1 14.2.2015 13:20:06 LOG_IN 83f068cd8c9c04b1f955495d8c59
User1 14.2.2015 13:07:36 LOG_OUT 7de97a3caf613ac3bb08dc494c6e
User1 14.2.2015 11:34:46 LOG_IN 7de97a3caf613ac3bb08dc494c6e
现在我需要一个查询来提取那个些,根据sessionID,logu-IN没有logu-OUT对。结果必须是这样的:
Username Date_time Event SessionID
User1 5.3.2015 13:26:50 LOG_IN a1e02a779d403df0b7ddd099db14
根据sessionID,每隔一个事件都有登录和注销对
我被困在这里,欢迎提供任何帮助,我非常感谢所有的帮助。你可以按自己的意愿去做
select
username,
Date_time,
Event,SessionID,
sum(Event='LOG_IN') as login_count,
sum(Event='LOG_OUT') as logout_count
from userevent
group by username,SessionID
having login_count = 1 and logout_count = 0 ;
从userevent中选择用户名、日期和时间、事件、会话ID
其中用户名类似“User1”
日期和时间介于现在-间隔500天和现在+间隔1天之间
而sessionID不在SELECT sessionID FROM userevent,其中event='LOG_OUT'
按日期\时间描述订购
就像您的代码一样,但添加了WHERE NOT IN语句,以确保查询不会检索已注销的sessionID
希望有帮助