为什么这不起作用?
SELECT `user_log`.`COMPUTER_NAME`, `user_log`.`LOCATION`
FROM `user_log`, `user_log_max` as max
WHERE max.`USER_NAME` = `user_log`.`USER_NAME` AND max.`ACCESS_DATE_TIME` = `user_log`.`ACCESS_DATE_TIME`
我收到以下错误:
#1054 - Unknown column 'max.ACCESS_DATE_TIME' in 'where clause'
我试过去掉别名:
SELECT `user_log`.`COMPUTER_NAME`, `user_log`.`LOCATION`
FROM `user_log`, `user_log_max`
WHERE `user_log_max`.`USER_NAME` = `user_log`.`USER_NAME` AND `user_log_max`.`ACCESS_DATE_TIME` = `user_log`.`ACCESS_DATE_TIME`
这个错误->
#1054 - Unknown column 'user_log_max.ACCESS_DATE_TIME' in 'where clause'
它正在去掉刻度线……为什么?
编辑:
user_log_max:
USER_NAME varchar(20)
ACCESS_DATE_TIME timestamp
user_log 包含相同的列,以及更多的列,包括 COMPUTER_NAME 和 LOCATION
user_log_max 包含在 user_log 上发出此查询的所有数据
SELECT `USER_NAME`, MAX(`ACCESS_DATE_TIME`) FROM `user_log
GROUP BY `USER_NAME`
本质上,我要做的是选择具有 MAX...GROUP BY 的列,而不是我的 GROUP BY 中的列。
编辑2:
这是我创建 user_log_max 的方式->
CREATE TABLE `user_log_max`
SELECT `USER_NAME`, MAX(`ACCESS_DATE_TIME`) FROM `user_log`
GROUP BY `USER_NAME`