なぜこれが機能しないのですか?
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`
基本的に、私がやろうとしているのは、GROUPBYにあるもの以外のMAX...GROUPBYを含む列を選択することです。
編集2:
これが私がuser_log_maxを作成する方法です->
CREATE TABLE `user_log_max`
SELECT `USER_NAME`, MAX(`ACCESS_DATE_TIME`) FROM `user_log`
GROUP BY `USER_NAME`