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列中具有最高值的文件中获取单行.
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)
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正确处理重复.
| 归档时间: |
|
| 查看次数: |
5717 次 |
| 最近记录: |