mysql实现users 表和 logoin_log表是一对多, 现在是把user的信息找出来 关联上一些 logoin_log表的数据, 因为a表是多的一方,要多他的数据进行一些条件匹配,这个sql目的是查出每个用户的最新的log记录
有的人建议进行表连接来进行筛选,不过那样很麻烦,小涛我断然拒绝了,然后我采用了另一个巧妙的方法:

列表的时候采用先查一个表,这里查的是users表,然后再传值到方法,该方法进行封装查询logoin_log,此时要通过id倒序排列,返回相应的值,这样就可以获得最新的log记录了,这样是不是更简单呢,得意……坚决用表连接的盆友们,赶快试试这种方法吧。

users 表和 auth_token_log表是一对多, 现在是把user的信息找出来 关联上一些 www.111cn.net auth_token_log表的数据, 因为a表是多的一方,

要多他的数据进行一些条件匹配

这个sql目的是查出每个用户的最新的log记录

原始写法

代码如下 复制代码

SELECT
 users.first_name,
 users.email_address,
 users.tp_user_id,
 users.tp_username,
 auth_token_log.module_access,
 auth_token_log.created_date
FROM
 users
 INNER JOIN auth_token_log ON users.id = auth_token_log.user_id
WHERE
 auth_token_log.id in(
  SELECT
  max(id)
FROM
  auth_token_log
WHERE
  auth_token_log.user_id = users.id
 )

自己的理解

代码如下 复制代码

SELECT
 users.first_name,
 users.email_address,
 users.tp_user_id,
 users.tp_username,
 auth_token_log.module_access,
 auth_token_log.created_date
FROM
 users
 INNER JOIN auth_token_log ON users.id = auth_token_log.user_id
WHERE
 auth_token_log.id in(
  SELECT
  max(auth_token_log.id)
FROM
  auth_token_log,
  users
WHERE
  auth_token_log.user_id = users.id
GROUP BY
  users.id
 )

对于原始写法的理解是

先查出

代码如下 复制代码
SELECT
 ×
FROM
 users
 INNER JOIN auth_token_log ON users.id = auth_token_log.user_id

的记录,  然后针对每一行记录X,拿出这一行X与 一个新的auth_token_log表做join,然后筛选出 log.user_id = x..user.id的所有记录, 然后查出max(id), 这就是最新的log记录的 id

更多详细内容请查看:http://www.111cn.net/database/mysql/56892.htm

mysql一对多关联查询的时候筛选条件的更多相关文章

  1. mybatis collection 一对多关联查询,单边分页的问题总结!

    若想直接通过sql实现多级关联查询表结构得有2 个必不可少的字段:id ,parentId,levelId id:主键id, parentId:父id levelId:表示第几级(表本身关联查询的时候 ...

  2. Mysql多表表关联查询 inner Join left join right join

    Mysql多表表关联查询 inner Join left join right join

  3. 7.mybatis一对多关联查询

    和第5节一对一查询类似,但是不同的是,一对一使用的是association,而一对多使用collection. 实例: 1个班级Class,对应1个老师Teacher,对应多个学生Student 1. ...

  4. [转]NHibernate之旅(10):探索父子(一对多)关联查询

    本节内容 关联查询引入 一对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 关联查询引入 在NHibernate中提供了三种查询方式给我们选择:NH ...

  5. MySQL如何执行关联查询

    MySQL中‘关联(join)’ 一词包含的意义比一般意义上理解的要更广泛.总的来说,MySQL认为任何一个查询都是一次‘关联’ --并不仅仅是一个查询需要到两个表的匹配才叫关联,索引在MySQL中, ...

  6. MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)

    MyBitis(iBitis)系列随笔之一:MyBitis入门实例 MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM) MyBitis(iBitis ...

  7. MyBatis从入门到放弃四:一对多关联查询

    前言 上篇学习了一对一关联查询,这篇我们学习一对多关联查询.一对多关联查询关键点则依然是配置resultMap,在resultMap中配置collection属性,别忽略了ofType属性. 搭建开发 ...

  8. mysql如何执行关联查询与优化

    mysql如何执行关联查询与优化 一.前言 在数据库中执行查询(select)在我们工作中是非常常见的,工作中离不开CRUD,在执行查询(select)时,多表关联也非常常见,我们用的也比较多,那么m ...

  9. MyBatis:一对多关联查询

    MyBatis从入门到放弃四:一对多关联查询 前言 上篇学习了一对一关联查询,这篇我们学习一对多关联查询.一对多关联查询关键点则依然是配置resultMap,在resultMap中配置collecti ...

随机推荐

  1. 一位Erlang程序猿的自白

    12.00 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style De ...

  2. Ajax获得站点文件内容实例

    一个简单的Ajax实例:选择一部著作,会通过 Ajax 实时获得相关的名字. 把4个html文件放到 web站点 的同一个文件下. index.html <html> <head&g ...

  3. Codeforces Round #338 (Div. 2) D. Multipliers 数论

    D. Multipliers 题目连接: http://codeforces.com/contest/615/problem/D Description Ayrat has number n, rep ...

  4. DataInputStream和DataOutputStream使用方法细节探讨

    DataInputStream和DataOutputStream都是Java中输入输出流的装饰类,用起来非常方便.今天就来讨论一下使用该类时候遇到的编码问题.  package com.vince ...

  5. 提供一个免费的CSDN下载账号

    账号:windforce05password:w12345678请下载了资源后评价一下资源,以便赚回分数.

  6. [Angular 2] Controlling Rx Subscriptions with Async Pipe and BehaviorSubjects

    Each time you use the Async Pipe, you create a new subscription to the stream in the template. This ...

  7. [Angular2 Form] Display Validation and Error Messaging in Angular 2

    Angular 2’s ngModel provides error objects for each of the built-in input validators. You can access ...

  8. AndroidManifest.xml 详解 (四) 之uses-permission

    The <uses-permission> Element 我们现在告别<application>元素,回到<manifest>中定义的子元素,<uses-p ...

  9. String当中的高效函数(优化)

    1. indexOf()函数是一个执行速度非常快的函数,可以用其与subString()实现高效的字符串分割,比内置的要高效. 2. charAt()方法也是高效率的函数,可以用其实现高效的start ...

  10. 关于Spring IOC容器解释

    何谓控制反转(IoC = Inversion of Control),何谓依赖注入(DI = Dependency Injection)?之前看到过两个比喻,觉得比较形象,特在此写下: IoC,用白话 ...