zoukankan      html  css  js  c++  java
  • 如何在子查询中实现多列过滤

    什么是子查询:

      当一个查询是另外一个查询的条件,称之为子查询。

    常见子查询使用场景:

      1.使用子查询可以避免由于子查询中的数据产生的重复。

      2.使用子查询更符合语义,更好理解

    -- 子查询user_id 重复时,不会导致结果重复 
    select user_name from qujing where id in (select user_id from user_kills);

    -- 使用join时,会重复
    select a.user_name from qujing a join user_kills b on a.id =b.user_id;

    -- 使用distinct去除重复记录
    select distinct a.user_name from qujing a join user_kills b on a.id =b.user_id;

    如何在子查询中实现多列过滤:

    步骤1:

    SELECT
        user_id,
        MAX(kills)
    FROM
        user_kills
    GROUP BY
        user_id

     步骤2:

    SELECT
        a.user_name,
        b.timestr,
        kills
    FROM
        qujing a
    JOIN user_kills b ON a.id = b.user_id
    WHERE
        (b.user_id, b.kills) IN (
            SELECT
                user_id,
                MAX(kills)
            FROM
                user_kills
            GROUP BY
                user_id
        );

  • 相关阅读:
    py笔记之循环结构
    PY学习记录#5
    PY学习记录#4
    py笔记之选择结构
    PY学习记录#3
    分享一个可以随时随地写代码的工具
    PY学习记录#2
    日记啊
    Tarjan学习笔记
    Docker commands
  • 原文地址:https://www.cnblogs.com/ooo0/p/12252841.html
Copyright © 2011-2022 走看看