我是靠谱客的博主 还单身大米,最近开发中收集的这篇文章主要介绍mysql查询连续7天_一个有趣的 SQL 查询(查询7天连续登陆),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一个有趣的 SQL 查询

一个朋友有这样一个SQL查询需求:

有一个登录表(tmp_test),包含用户ID(uid)和登录时间(login_time)。表结构如下:

*************************** 1. row ***************************Field: uid

Type:int(10) unsignedNull: NOKey: MULDefault: NULLExtra:*************************** 2. row ***************************Field: login_time

Type:timestamp

Null: NOKey: MULDefault: 0000-00-00 00:00:00Extra:

问如何查询出所有在某一段时间内(如:2012-1-1至2012-1-17)连续7天都有登录的用户。

在写这个SQL时,发现一些很有意思东西,也许对大家写SQL有帮助,因此记录一下。

- 基本思路 Loop Join

首先想到的思路是一个类似于Loop Join的方法:

A. 取出2012-1-1到2012-1-11的每一条记录.

B. 对取出的每一条记录,再去表中查询这个用户的接下来6天的记录。

如果总数为6条记录,则满足连续7天的条件

- Range Join

Loop Join的思路可以通过一个Join语句来实现。姑且称之为Range Join。通常join时,使用的都是

等值join. 如果join列的值是唯一的,那么就是左表的一条记录对应右表的一条记录。而Range Join

中,左表的一行数据对应右表的一

最后

以上就是还单身大米为你收集整理的mysql查询连续7天_一个有趣的 SQL 查询(查询7天连续登陆)的全部内容,希望文章能够帮你解决mysql查询连续7天_一个有趣的 SQL 查询(查询7天连续登陆)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部