Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL独立查询_Mysql_Distinct - Fatal编程技术网

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