2
当我内部连接第二个表时,我只想连接一行。条件是采取级别列中具有最高整数的行。我想是这样的:通过仅获得最高整数行内部连接单行
SELECT *
FROM file_repo
INNER JOIN
( SELECT
MAX(files.level)
FROM
files
) ON file_repo.id = files.repo_id
对于每一行file_repo我会得到一个单列的文件,在水平列中的最高值。
与其他人(10x左右)相比,此解决方案似乎运行得相当缓慢。在另一个例子中,两个file_repo共享同一级别时发生了什么问题?这只是匹配文件的不一致选择吗? – 2011-09-08 17:11:29
@ebyrob:你将得到所有最新的文件,而不是一个。请注意,性能取决于表的索引方式,如果您有大量空回购(其中完全没有文件),则其他解决方案的确可以更快。 – Quassnoi 2011-09-08 17:31:51