您好我想获取最后3个唯一行但允许返回任何具有相同文件名的重复项。在下面的示例中,我应该返回5行。
所以我应该visa2 f9ed287
visa1 f9ed287
visa f9ed287
rose 996fa07
和feel e96ba65
Emo Table
---------
id | s | filename
----------------------
59 | visa2 | f9ed287
58 | visa1 | f9ed287
57 | visa | f9ed287
56 | rose | 996fa07
55 | feel | e96ba65
54 | kick | c716cea
53 | yay | 8e1ff5d
这是我正在使用的代码,其中不包含结果中的重复项
$statement = $pdo->prepare("SELECT s, f FROM emos
GROUP BY (f)
ORDER BY id DESC
LIMIT 3");
$statement->execute(array($room));
答案 0 :(得分:1)
你的问题不是很好,但我相信这就是你想要的:
SELECT s, f
FROM emos
WHERE
f IN (SELECT DISTINCT(f) FROM emos ORDER BY id DESC LIMIT 3)
ORDER BY f, id;
如果我误解了,请重新提出您的问题,我会更新我的回答
答案 1 :(得分:1)
尝试使用此查询:
SELECT e.s, e.filename
FROM emos e
INNER JOIN (SELECT filename FROM emos GROUP BY filename ORDER BY id desc LIMIT 3) as t ON t.filename = e.filename
答案 2 :(得分:0)
这应该通过加入自己的emos来获得最后三个文件名:
SELECT e1.s, e1.f
FROM emos e1
JOIN (
SELECT f
FROM emos
GROUP BY f
ORDER BY id DESC
LIMIT 3
) e2 ON e1.f=e2.f
ORDER BY e1.id DESC;