我的sql语句是:
SELECT COUNT(*) FROM wujiuser u WHERE
(SELECT MAX(days) FROM
(SELECT
@con :=(CASE WHEN ( dd = 0 OR dd = @con) THEN (@con + 1)ELSE 0 END) AS days,
dd FROM
(SELECT DATEDIFF(NOW(),t.logintime) AS dd FROM login_record t WHERE t.u_id=u.u_id ORDER BY t.logintime DESC) AS vv GROUP BY dd) AS v1)>=3
出现报错信息:Unknown column 'u.u_id' in 'where clause'
可能他先执行where里面的子查询的时候还没有u这个别名,你试下把u直接改成表名呢?不用要别名
表示你的数据表的中的列名,对应不正确。
‘u.u id’与你的数据表中的列名,再核对一篇吧
拆分成多条语句试试看
在执行语句 “SELECT DATEDIFF(NOW(),t.logintime) AS dd FROM login_record t WHERE t.u_id=u.u_id ORDER BY t.logintime DESC) AS vv GROUP BY dd ”
没有定义过u这个表,所以无法查到u.u_id,如果想要解决只能在这个语句中重新定义wujiuser表