内部通过仅获取最高整数行来连接单行

krx*_*krx 2 mysql join inner-join

当我内部加入第二个表时,我只想加入一行.标准是获取级别列中具有最高整数的行.我在想这样的事情:

SELECT *
FROM file_repo
INNER JOIN
(   SELECT 
       MAX(files.level)
    FROM
       files
) ON file_repo.id = files.repo_id
Run Code Online (Sandbox Code Playgroud)

对于file_repo中的每一行,我将从level列中具有最高值的文件中获取单行.

Red*_*ter 5

SELECT fr.*, fm.MaxLevel
FROM file_repo fr
INNER JOIN (   
    SELECT repo_id, MAX(level) as MaxLevel
    FROM files 
    GROUP BY repo_id
) fm ON fr.id = fm.repo_id 
Run Code Online (Sandbox Code Playgroud)


Qua*_*noi 5

SELECT  *
FROM    file_repo fr
JOIN    files f
ON      f.id = 
        (
        SELECT  id
        FROM    files fi
        WHERE   fi.repo_id = fr.id
        ORDER BY
                repo_id DESC, level DESC, id DESC
        LIMIT 1
        )
Run Code Online (Sandbox Code Playgroud)

files (repo_id, level, id)为此创建索引以快速工作.

这将level正确处理重复.