2015-11-17 29 views
0

我創建了一個日期和有限的IP之間的簡單登錄系統,但MySQL查詢給我一些錯誤。選擇beetween日期和有限的IP

我想控制用戶是否登錄更多的則有限的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 

enter image description here

+0

什麼樣的錯誤你有..? –

+0

'where子句'中的未知列'total'這是錯誤的並且不計算ip –

+0

您不能在WHERE子句中使用聚合函數。嘗試使用'HAVING'來代替。 – bronislav

回答

0
SELECT User.* 
FROM 
login_card User 
INNER JOIN 
(SELECT userid,COUNT(DISTINCT `ip`) as Total_ips 
    FROM 
    cart_log 
    INNER JOIN login_card ON login_card.`userid`=cart_log.`userid` AND cart_log.dt > DATE_SUB(now(), INTERVAL login_card.end_dt MONTH) 
    group by userid) T ON User.`userid` = T.`userid` AND T.`Total_ips` > User.`total_ip` 
WHERE User.login_name = 'toruser' AND User.login_pass = '54trvd' 

希望這有助於。

+0

你現在可以檢查嗎? –

+0

我tryed但不工作 –

+0

什麼是錯誤得到..我現在編輯請檢查 –

0

試試這個....

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 

讓我知道你會得到什麼?

+0

錯誤日誌:未知列'總''在'子句' –

+0

它爲我工作,謝謝Ajay –

相關問題