Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.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解决方案不';还不支持';限制及;在/ALL/ANY/SOME子查询中';_Mysql - Fatal编程技术网

MySQL解决方案不';还不支持';限制及;在/ALL/ANY/SOME子查询中';

MySQL解决方案不';还不支持';限制及;在/ALL/ANY/SOME子查询中';,mysql,Mysql,出于某些原因,MYSQL不支持子查询内部的限制: SELECT m.* FROM `my_table` m WHERE m.`id` IN ( SELECT o.`id` FROM (SELECT DISTINCT i.`id`, i.`label`, i.`client`, i.`place` FROM `my_table` i ORDER BY i.`label`, -i.`client` DESC, -i.`place` DESC) o WHE

出于某些原因,MYSQL不支持子查询内部的限制:

 SELECT m.* 
 FROM `my_table` m
 WHERE m.`id` IN (
   SELECT o.`id`
   FROM (SELECT DISTINCT i.`id`, i.`label`, i.`client`, i.`place`
     FROM `my_table` i
     ORDER BY i.`label`, -i.`client` DESC, -i.`place` DESC) o
   WHERE m.`label` = o.`label` LIMIT 1
 );

我已尝试使用此链接中的join:但未成功。有人有线索吗?谢谢。

由于子查询只返回一行一列,因此不需要
中的

您可以使用
=

 SELECT m.* 
 FROM `my_table` m
 WHERE m.`id` = (
   SELECT o.`id`
   FROM (
     SELECT DISTINCT i.`id`, i.`label`, i.`client`, i.`place`
     FROM `my_table` i
     ORDER BY i.`label`, -i.`client` DESC, -i.`place` DESC) o
   WHERE m.`label` = o.`label` LIMIT 1
 );
但是在编写时,您的查询使用了
限制
,而不使用
排序依据
(您确实在内部子查询中使用了没有用处的
排序依据)。
你想做这样的事吗:

SELECT m.* 
FROM `my_table` m
WHERE m.`id` = (
  SELECT o.`id`
  FROM (
    SELECT DISTINCT i.`id`, i.`label`, i.`client`, i.`place`
    FROM `my_table` i
  ) o
  WHERE m.`label` = o.`label` 
  ORDER BY o.`label`, -o.`client` DESC, -o.`place` DESC
  LIMIT 1
);
此外,按列的负值降序排序相当于仅按升序排序,因此,
orderby
子句可以简化为:

ORDER BY o.`label`, o.`client`, o.`place`

你能分享一下你的代码显示的错误吗?我提供的这段代码的错误是:“这个版本的MySQL还不支持‘LIMIT&IN/ALL/ANY/SOME子查询’你试过使用这个函数吗?我刚刚用ROW_NUMBER()替换了LIMIT 1)它说我的查询有错误。你必须将它用于
分区
,这有点困难。请检查这个。