什么是子查询:
当一个查询是另外一个查询的条件,称之为子查询。
常见子查询使用场景:
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 );
原文地址:https://www.cnblogs.com/ooo0/p/12252841.html
时间: 2024-10-08 17:27:17