Mysql 消除重复记录的子查询

Mysql 消除重复记录的子查询,mysql,Mysql,两个表中都将有多条记录具有相同的emp id 我需要询问一下 加入条件app.employee\u id=fac.empid app.begindate,app,enddate,app.percent 最大(金额),但我仍然有机会重复记录,因为对于一名员工,金额可以相同,所以我需要最大金额记录的不同部分 但我下面的查询将首先获得max记录,然后查询begindate、end date和percent 我想按照上面指定的顺序进行查询 SELECT app.amt, fac.email, fac.e

两个表中都将有多条记录具有相同的emp id 我需要询问一下

  • 加入条件app.employee\u id=fac.empid
  • app.begindate,app,enddate,app.percent
  • 最大(金额),但我仍然有机会重复记录,因为对于一名员工,金额可以相同,所以我需要最大金额记录的不同部分
  • 但我下面的查询将首先获得max记录,然后查询begindate、end date和percent

    我想按照上面指定的顺序进行查询

    SELECT app.amt, fac.email, fac.employee_id, fac.empid, 
                         fac.first_name, fac.last_name, fac.department_id, fac.titlecode,
                         app.begindate, app.enddate, app.percent,
                         app.title_name, app.department_name 
    FROM appointment app
    LEFT JOIN appointment app2                                    -- self-join to locate max
     ON app.employee_id = app2.employee_id AND app.amt < app2.amt --  of app.amt
    INNER JOIN faculty fac ON app.employee_id=fac.empid            -- join to fac
    WHERE app2.amt IS NULL                                        -- isolate rows with max(app.amt)
      AND app.begindate <= NOW() 
      AND app.enddate >= NOW() 
      AND app.percent>.50 group by empid
    
    选择app.amt、fac.email、fac.employee\u id、fac.empid、,
    工厂名,工厂姓,工厂部门id,工厂标题代码,
    app.begindate、app.enddate、app.percent、,
    app.title\u name,app.department\u name
    从约会应用程序
    左加入约会app2--自加入以查找最大值
    在app.employee_id=app2.employee_id和app.amt0.50按empid分组
    
    约会表的employeeid和employee_id是不同的列还是仅仅是一个输入错误?对于行中最大金额不满足日期或百分比要求的员工,您的查询似乎不会返回任何内容,这是预期的吗?你能用一些示例数据写更多关于你想要实现什么的信息吗?我上面的查询将根据最大金额、联接条件、begindate、enddate和百分比获取员工的唯一记录。但我需要查询上面指定的顺序,就像首先使用id联接两个表,而不是根据条件begindate排序一样,结束日期和百分比,然后是最大金额记录。后续操作可能提供更多上下文