• MySQL多表查询数据出现串行


    如上图所示,要查询一个用户(从注册开始) 7天, 15天, 30天的发帖数量, 查询出来的数据结果串行了。因为,有注册的用户,他前7天没有发帖,即发帖数为0,在数据表中应该显示为NULL的,所以数据表中15天多出来的数据,是用户7天发帖数为0的。   30天的也同样道理。

    怎么解决呢? 首先以 最大限期时30天的为主参照表, 30天包含15天,7天,如果以他为参考主表,筛选出来的用户ID肯定会也有15天,7天的,如果没发帖的话,查询显示就是NULL。

    语句这样写, .

    select * from (连表查询产生的虚拟表30天的) left join (联表查询产生的虚拟表7天的) on 这两张虚拟表的连接条件

    select * from (连表查询产生的虚拟表30天的) left join (联表查询产生的虚拟表15天的) on 这两张虚拟表连接条件

    SELECT
    A.id, A.user_id, A.`注册时间`, A.`发帖数量`, B.`发帖数量`
    FROM
    (
    SELECT
    qp.id,
    qp.user_id,
    qs.wechat,
    from_unixtime(qp.create_at, '%Y-%m-%d') 注册时间,
    COUNT(qp.user_id) 发帖数量,
    count(qs.id) 二手数量,
    qs.create_at ,
    uw.create_at AS uwcreate
    FROM
    welife_quan.quan_post AS qp
    LEFT JOIN quan_post_second AS qs ON qs.pid = qp.id
    LEFT JOIN welife_system.user_wechat AS uw ON uw.unionid = qp.user_id
    GROUP BY
    qp.user_id
    HAVING
    qs.wechat != ''
    AND qs.create_at <= uwcreate + 60 * 60 * 24 * 30
    ORDER BY
    qp.id DESC
    ) AS A
    LEFT JOIN(
    SELECT
    qp.id,
    qp.user_id,
    qs.wechat,
    from_unixtime(qp.create_at,'%Y-%m-%d') 注册时间,
    COUNT(qp.user_id) 发帖数量,
    count(qs.id) 二手数量,
    qs.create_at,
    uw.create_at AS uwcreate
    FROM
    welife_quan.quan_post AS qp
    LEFT JOIN quan_post_second AS qs ON qs.pid = qp.id
    LEFT JOIN welife_system.user_wechat AS uw ON uw.unionid = qp.user_id
    GROUP BY
    qp.user_id
    HAVING
    qs.wechat != ''
    AND qs.create_at <= uwcreate + 60 * 60 * 24 * 7
    ORDER BY
    qp.id DESC
    ) AS B ON A.user_id = B.user_id;

  • 相关阅读:
    keras----resnet-vgg-xception-inception
    ubuntu16.04----jdk---install----config
    ubuntu16.04--在标题栏显示网速
    caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--03--20171103
    matlab2016b-linux版本在ubutu16.04x64上面不能打开摄像头的处理方法
    eclipse adt开发android ndk没有NDK选项问题的解决方案
    Failed to fetch URL https://dl-ssl.google.com/android/repository/addons_list-2.xml, reason: Connect
    eclipse--windowBuilder
    qt-mingw530-opencv-开发配置
    蔽月山房---作者,王阳明
  • 原文地址:https://www.cnblogs.com/wangshuazi/p/9516144.html
Copyright © 2020-2023  润新知