• sql left join on


    1  查询字段数据,可以直接使用字段别名查询。

    SELECT 系统, ob_id AS 服务器, 凭证个数, 使用凭证, 使用时长(秒)
    , 使用次数, 最后使用人, 最后使用时间
    FROM (
    SELECT ra_target_resource_id, ra_credential_id AS 使用凭证
    , SUM(TIMESTAMPDIFF(SECOND, ra_start_time, ra_end_time)) AS 使用时长(秒)
    , COUNT(ra_credential_id) AS 使用次数, gs_requester_id AS 最后使用人
    , MAX(ra_start_time) AS 最后使用时间
    FROM am_ucmrecordedapp

    2  usageLog   虚拟表 别名 as 别名 (as可以去掉)

    am_ucmrecordedapp    左表
    LEFT JOIN
    am_ucmgwsession
    左连接 查询

    1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。

    2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉



    SELECT 系统, ob_id AS 服务器, 凭证个数, 使用凭证, 使用时长(秒)
    , 使用次数, 最后使用人, 最后使用时间
    FROM (
    SELECT ra_target_resource_id, ra_credential_id AS 使用凭证
    , SUM(TIMESTAMPDIFF(SECOND, ra_start_time, ra_end_time)) AS 使用时长(秒)
    , COUNT(ra_credential_id) AS 使用次数, gs_requester_id AS 最后使用人
    , MAX(ra_start_time) AS 最后使用时间
    FROM am_ucmrecordedapp
    LEFT JOIN am_ucmgwsession ON ra_short_session_id = gs_short_session_id
    WHERE (ra_credential_id != 'null'
    AND ra_end_time != 'null'
    AND ra_start_time > '2018-01-01'
    AND ra_end_time < '2018-12-31')
    GROUP BY ra_credential_id
    ) usageLog
    LEFT JOIN (
    SELECT ob_description AS 系统, ob_id, COUNT(cr_targetrsc_uuid) AS 凭证个数
    FROM am_object
    LEFT JOIN am_ucmcred ON cr_targetrsc_uuid = ob_uuid
    WHERE ob_object_class = 'PasswordTargetResource'
    GROUP BY cr_targetrsc_uuid
    ORDER BY ob_description
    ) connInfo
    ON usageLog.ra_target_resource_id = connInfo.ob_id
    WHERE 系统 = 'centos'
    ORDER BY connInfo.系统;
  • 相关阅读:
    技术人生:墨菲定律
    Ioc:Autofac Registration Concepts
    Ioc:autofac lifetime scope.
    Ioc:The basic pattern for integrating Autofac into your application
    Logstash filter 插件之 date
    配置 Elasticsearch 集群
    Linux 命名管道
    Linux 管道
    Golang 入门 : channel(通道)
    Golang 入门 : 竞争条件
  • 原文地址:https://www.cnblogs.com/TangGe520/p/10080157.html
Copyright © 2020-2023  润新知