MYSQL独立查询
这是我的表格示例:MYSQL独立查询,mysql,distinct,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 我想获得具有最新外文id的不同文件(较大的数字,但不一定最大)。 在本例中,它将是id为4,5,6,7的行。有人知道吗?多谢各位 选择 *
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
我想获得具有最新外文id的不同文件(较大的数字,但不一定最大)。
在本例中,它将是id为4,5,6,7的行。有人知道吗?多谢各位 选择
*
从…起
表名称
哪里
外来id>100选择
*
从…起
表名称
哪里
外国id>100你能试试下面的方法吗:-
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来测试这一点。你能试试下面的方法吗:-
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来测试此功能。您可以执行以下操作:
select *
from table_name
where max_id_you_want = (select max(id_you_want) from table_name)
你可以这样做:
select *
from table_name
where max_id_you_want = (select max(id_you_want) from table_name)
听起来你只是想要这个:
SELECT name, MAX(foreign_id)
FROM table
GROUP BY name;
如果您需要ID(我猜您不会,因为name和foreign_ID可能是唯一的,这使得ID列不必要),我认为MySQL将允许您通过将该列添加到SELECT列表中来实现这一点,尽管这是非标准SQL。如果您想要标准SQL,那么您需要类似Ashish编写的内容。听起来您只需要以下内容:
SELECT name, MAX(foreign_id)
FROM table
GROUP BY name;
SELECT * FROM table
GROUP BY name
having MAX(foreign_id);
如果您需要ID(我猜您不会,因为name和foreign_ID可能是唯一的,这使得ID列不必要),我认为MySQL将允许您通过将该列添加到SELECT列表中来实现这一点,尽管这是非标准SQL。如果您需要标准SQL,那么您需要类似Ashish编写的内容。此列表为5、6和7,而不是问题中所问的4。是的,但这是解决问题的一种方法。我假设最近的id是最棒的,否则你需要找到另一种方法来获得它。要获得所有最大id的集合,您可以从您想要的id所在的某个表中选择任何内容(查询返回您要查找的结果),该列表为5、6和7,而不是问题中所问的列表4。是的,但这是解决问题的一种方法。我假设最近的id是最棒的,否则你需要找到另一种方法来获得它。要获得所有最大id的集合,您可以做一些事情,比如从您想要的id所在的某个表中选择任何内容(查询返回您要查找的结果)
SELECT * FROM table
GROUP BY name
having MAX(foreign_id);