如何通过MySQL查询选择多个登录?
我想通过MySQL查询选择所有登录事件以及一个特定IP地址下的登录次数 我提出的问题如下。但恐怕我错过了什么。 希望大家能看到我的错误如何通过MySQL查询选择多个登录?,mysql,subquery,Mysql,Subquery,我想通过MySQL查询选择所有登录事件以及一个特定IP地址下的登录次数 我提出的问题如下。但恐怕我错过了什么。 希望大家能看到我的错误 SELECT `pp_loginevent`.`loginevent_user`, `pp_loginevent`.`loginevent_creationdate`, `pp_loginevent`.`loginevent_ip`, `pp_user`.`user_id`, `pp_user`
SELECT `pp_loginevent`.`loginevent_user`,
`pp_loginevent`.`loginevent_creationdate`,
`pp_loginevent`.`loginevent_ip`,
`pp_user`.`user_id`,
`pp_user`.`user_name`,
`pp_user`.`user_rights`,
`pp_user`.`user_active`,
`pp_license`.`license_name`
(SELECT COUNT(1)
FROM `pp_loginevent`
WHERE `loginevent_ip` = `pp_loginevent`.`loginevent_ip`
) AS `pp_loginevent`.`number_of_logins`
FROM `pp_loginevent`
LEFT JOIN `pp_user`
ON `pp_loginevent`.`loginevent_user` = `pp_user`.`user_id
LEFT JOIN `pp_license`
ON `pp_loginevent`.`loginevent_license` = `pp_license`.`license_id`
WHERE `loginevent_creationdate` LIKE '2019-%'
AND `user_rights` <= '6'
GROUP BY `loginevent_ip`
ORDER BY `loginevent_creationdate` DESC
我试图做的是获取登录的列号,该列应包含特定IP地址的登录数。您在这里看不到任何错误:
`pp_license`.`license_name`
(SELECT COUNT(1) FROM `pp_loginevent` WHERE `loginevent_ip` = `pp_loginevent`.`loginevent_ip`) AS `pp_loginevent`.`number_of_logins`
?
虽然这无法解决此查询的所有问题,但我认为以这种方式编写查询会导致一个非常明显的错误:
SELECT e.loginevent_user
, e.loginevent_creationdate
, e.loginevent_ip
, u.user_id
, u.user_name
, u.user_rights
, u.user_active
, l.license_name
(SELECT COUNT(1)
FROM pp_loginevent
WHERE loginevent_ip = pp_loginevent.loginevent_ip) pp_loginevent.number_of_logins
FROM pp_loginevent e
JOIN pp_user u
ON u.user_id = e.loginevent_user
LEFT
JOIN pp_license l
ON l.license_id = e.loginevent_license
WHERE e.loginevent_creationdate >= '2019-01-01'
AND e.loginevent_creationdate < '2020-01-01'
AND user_rights <= 6
GROUP
BY loginevent_ip
ORDER
BY loginevent_creationdate DESC
事实上,除了这个语法错误,我怀疑这个查询中还有其他逻辑错误
因此,请参见:我怀疑此查询中存在多个错误。请看:因为关于MySQL查询,我和****一样忧郁。所以我没有看到语法错误。虽然我知道有一个。@Alex你说蓝色是什么意思?