zoukankan      html  css  js  c++  java
  • mysql一对多关联查询的时候筛选条件

    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

  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/alibai/p/3520170.html
Copyright © 2011-2022 走看看