Mysql SQL查询:所有最大保留服务器的列表

Mysql SQL查询:所有最大保留服务器的列表,mysql,database,Mysql,Database,我有以下模式: sailor: ssn, fname, lname, address reservation: sailor_ssn, date_reserved, boat_reg# boat: reg#, bname, color, model# 我想列出所有最大保留服务器的名称。如果一个水手预订的船不是其他水手的合适子集,那么他就是一个最大的预订者 提前感谢我提出了以下问题: SELECT p.fname, p.lname FROM sail.person p JOIN sail.sa

我有以下模式:

sailor: ssn, fname, lname, address
reservation: sailor_ssn, date_reserved, boat_reg#
boat: reg#, bname, color, model#
我想列出所有最大保留服务器的名称。如果一个水手预订的船不是其他水手的合适子集,那么他就是一个最大的预订者


提前感谢

我提出了以下问题:

SELECT p.fname, p.lname 
FROM sail.person p
JOIN sail.sailor s ON p.ssn = s.ssn
JOIN
    (SELECT DISTINCT r4.sailor_ssn 
     FROM sail.reservation r4
     WHERE r4.sailor_ssn NOT IN
        (SELECT T3.sailor_ssn
         FROM
            (SELECT *
             FROM 
                (SELECT r1.sailor_ssn, r2.sailor_ssn sssn, count(*) ctr1
                 FROM sail.reservation r1
                 JOIN sail.reservation r2 ON r1.boat_reg# = r2.boat_reg# 
                 AND r1.sailor_ssn != r2.sailor_ssn
                 GROUP BY r1.sailor_ssn, r2.sailor_ssn) T1 
                 JOIN 
                    (SELECT r3.sailor_ssn rssn, count(*) ctr2
                     FROM sail.reservation r3
                     GROUP BY r3.sailor_ssn) T2 
                 ON T1.sailor_ssn = T2.rssn) T3
         where T3.ctr1 = T3.ctr2)) T4
ON T4.sailor_ssn = s.ssn;
有没有更好的解决办法