mysql 为什么子查询不支持limit ,而子查询的子查询 支持 limit
2个回答
2013-06-11
展开全部
子查询支持的啊, 你怎么写的?
mysql> SELECT * FROM test_main;
+----+-------+
| id | value |
+----+-------+
| 1 | ONE |
| 2 | TWO |
| 3 | THREE |
+----+-------+
3 rows in set (0.00 sec)
mysql> SELECT
-> *
-> FROM
-> (
-> SELECT
-> *
-> FROM
-> test_main
-> ORDER BY
-> id DESC
-> LIMIT 0, 2
-> ) subQuery
-> ORDER BY id
-> LIMIT 0, 1;
+----+-------+
| id | value |
+----+-------+
| 2 | TWO |
+----+-------+
1 row in set (0.00 sec)
追问
谢谢了!!!
2020-12-22 · MySQL开源数据库领先者
关注
展开全部
Semi-join 限制
不过并不是所有子查询都是半联接,必须满足以下条件:
- 子查询必须是出现在顶层的 WHERE、ON 子句后面的 IN 或者 =ANY
- 子查询必须是单个 select,不能是 union;
- 子查询不能有 group by 或者 having 子句(可以用 semijoin materialization 策略,其他不可以 );
- It must not be implicitly grouped (it must contain no aggregate functions). (不知道啥意思,保持原文);
- 子查询不能有 order by with limit;
- 父查询中不能有 STRAIGHT_JOIN 指定联接顺序;
- The number of outer and inner tables together must be less than the maximum number of tables permitted in a join.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询