这是我的表格的例子:
id | name | foreign_id |
-------------------------
1 a 100
2 b 100
3 c 100
4 d 101
5 a 102
6 b 102
7 c 102
我想使用最新的foreign_id获取不同的文件(更大的数字,但不一定是最大的)。 在这个例子中,它将是id为4,5,6,7的行。任何人有任何想法?非常感谢你!
答案 0 :(得分:2)
你可以试试下面的内容: -
SELECT Id,Table1.Name,Table1.Fid FROM Table1 INNER JOIN
(SELECT Name,Max(FId) AS FId FROM Table1 Group By Name)
Table2 ON Table1.FId=Table2.FId AND Table1.Name=table2.Name
这至少在Sql Server中有效。请检查MySQL。对不起,我没有MySQL来测试它。
答案 1 :(得分:1)
听起来你只想要这个:
SELECT name, MAX(foreign_id)
FROM table
GROUP BY name;
如果你需要ID(我猜你不会,因为name和foreign_id应该是唯一的,不需要ID列),我想MySQL只允许你通过添加该列来获得它SELECT列表 - 虽然这是非标准的SQL。如果你想要标准的SQL,那么你想要像Ashish写的那样。
答案 2 :(得分:0)
选择 * 从 TABLE_NAME 哪里 foreign_id> 100
答案 3 :(得分:0)
您可以执行以下操作:
select *
from table_name
where max_id_you_want = (select max(id_you_want) from table_name)
答案 4 :(得分:0)
SELECT * FROM table
GROUP BY name
having MAX(foreign_id);