复杂的MySQL查询,具有不同的
这是我从“实际上它是两个不同表的视图”中获取数据的表复杂的MySQL查询,具有不同的,mysql,sql,database,Mysql,Sql,Database,这是我从“实际上它是两个不同表的视图”中获取数据的表 第一个表是users表,它包含关于用户的所有信息 第二个是日志表,记录观看视频的人和观看时间 log_views.id, log_views.user_id, log_views.video_id, log_views.date, users.user_key, users.name_display, users.img_key 我尝试的是显示最后18个用户来观看视频,但我不希望有任何重复的用户。因此,如果一个用户在过去18年中出现两
- 第一个表是users表,它包含关于用户的所有信息
- 第二个是日志表,记录观看视频的人和观看时间
log_views.id, log_views.user_id, log_views.video_id, log_views.date, users.user_key, users.name_display, users.img_key
我尝试使用
DISTINCT
关键字,但我得到了不止一列,因此它不起作用 看看这些,了解一些要点:
这就是我最后使用的。
recent\u video\u viewers
是我制作的视图的名称,因此我不必进行任何连接
SELECT id, MAX(date), user_id, img_key, random_key
FROM recent_video_viewers
WHERE video_id = '$vr[id]' AND img_key != ''
GROUP BY user_id
ORDER BY MAX(date) DESC
LIMIT 18
我不确定这是否是最好的方法,但它是有效的。下面是一个有效的查询。它假设您只需要给定视频id(@video\u id)的日志:
SELECT log_date, user_id, name_display
FROM (
SELECT MAX(l.date) AS log_date, user_id
FROM log_views AS l
WHERE (l.video_id=@video_id)
GROUP BY user_id
ORDER BY log_date DESC
LIMIT 18
) AS top
INNER JOIN users AS u ON (u.user_key=top.user_id)