安于心m 2024-01-02 17:00 采纳率: 65.2%
浏览 4

sql去重如何解决啊123

存在两张表User,字段(id,name,age,class,sex(男|女)) Student表(id,class)
第一步:两张表根据class关联查询返回User *
第二部:返回user中的所有数据,如果use中的name,age数据值相同,则只查询出来sex值为男的数据
sql如何去重??

  • 写回答

2条回答 默认 最新

  • 普通网友 2024-01-02 17:05
    关注

    您可以使用以下 SQL 查询语句来实现您的需求:

    第一步:根据 class 字段关联查询返回 User 表:

    SELECT * FROM User u
    JOIN Student s ON u.class = s.class
    

    第二步:返回 User 表中的所有数据,如果 nameage 数据值相同,则只查询出 sex 值为男的数据,并进行去重:

    SELECT DISTINCT u.*
    FROM User u
    JOIN Student s ON u.class = s.class
    WHERE (u.name, u.age) IN (
        SELECT name, age
        FROM User
        GROUP BY name, age
        HAVING COUNT(*) > 1
    ) AND u.sex = '男'
    

    上述查询语句使用了子查询来筛选出在 User 表中具有相同 nameage 的记录,并且使用 DISTINCT 关键字来去重。只查询出 sex 值为男的数据。

    请根据您的具体数据库表名和字段名进行相应的修改。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月2日