MYSQL截然不同的查询

时间:2010-03-21 15:05:06

标签: mysql distinct

这是我的表格的例子:

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的行。任何人有任何想法?非常感谢你!

5 个答案:

答案 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);