Mysql 选择日期和有限的ip

Mysql 选择日期和有限的ip,mysql,Mysql,我正在创建一个简单的登录系统,具有日期和有限的IP,但MySQL查询给了我一些错误 我想控制用户是否登录超过有限的IP以及在有限的日期之间 这是一个mysql查询: SELECT *, count(l.ip) as total FROM login_card as c INNER JOIN cart_log as l WHERE c.login_name = "toruser" AND c.login_pass = "54trvd" AND l.dt > DATE_SUB(now(),

我正在创建一个简单的登录系统,具有日期和有限的IP,但MySQL查询给了我一些错误

我想控制用户是否登录超过有限的IP以及在有限的日期之间

这是一个mysql查询:

SELECT *, count(l.ip) as total FROM login_card as c
INNER JOIN cart_log  as l
WHERE c.login_name = "toruser" AND c.login_pass = "54trvd"
AND l.dt > DATE_SUB(now(), INTERVAL c.end_dt MONTH)
AND total > c.total_ip
希望这有帮助。

试试这个

SELECT *, count(l.ip) as total FROM login_card as c
INNER JOIN cart_log  as l
WHERE c.login_name = "toruser" AND c.login_pass = "54trvd"
AND l.dt > DATE_SUB(now(), INTERVAL c.end_dt MONTH)
AND count(l.ip) > c.total_ip

让我知道您得到了什么…

您得到了什么错误…?where子句中的未知列“total”这是一个错误,不计算IP。您不能在where子句中使用聚合函数。尝试改用HAVING.error log:where子句中的未知列“total”获取的错误是什么。。我现在已经编辑,请检查您是否删除where子句,您将获得那些登录超过有限ip的用户。您是对的,但我也想控制日期。从第一次登录到3个月都是这样
SELECT *, count(l.ip) as total FROM login_card as c
INNER JOIN cart_log  as l
WHERE c.login_name = "toruser" AND c.login_pass = "54trvd"
AND l.dt > DATE_SUB(now(), INTERVAL c.end_dt MONTH)
AND count(l.ip) > c.total_ip