Mysql 对子查询使用限制
我做错了什么?Mysql 对子查询使用限制,mysql,Mysql,我做错了什么? 它返回以下错误:此版本的MySQL尚不支持“LIMIT&IN/ALL/ANY/SOME子查询” 当我单独运行子查询时,它工作正常: select * from emprego where base in ( SELECT base FROM emprego me group by base order by sum(TIMEDIFF(me.data_demissao,me.data_admissao)) desc limit 1 ) 用self-join重
它返回以下错误:
此版本的MySQL尚不支持“LIMIT&IN/ALL/ANY/SOME子查询”
当我单独运行子查询时,它工作正常:
select * from emprego
where base in
(
SELECT base FROM emprego me
group by base
order by sum(TIMEDIFF(me.data_demissao,me.data_admissao)) desc
limit 1
)
用self-join重写查询
select e.*
from emprego e
join
(
SELECT base FROM emprego me
group by base
order by sum(TIMEDIFF(me.data_demissao,me.data_admissao)) desc
limit 1
) e1
on(e.base = e1.base)
试试这个
select * from emprego
where base in
(
select * from
(
select base from emprego me
group by base
order by sum(TIMEDIFF(me.data_demissao, me.data_admissao)) desc
limit 1
) as t
)
我希望这能有所帮助。这里有一个疑问:
SELECT *
FROM emprego E
INNER JOIN (SELECT E2.base
,SUM(TIMEDIFF(E2.data_demissao, E2.data_admissao)) AS [duree]
FROM emprego E2
GROUP BY E2.base) D ON D.base = E.base
ORDER BY D.duree DESC
LIMIT 1
希望这将帮助您避免在执行查询时出现错误。问题是什么?当所有这些都在一起时,它不会运行,它返回错误
此版本的MySQL还不支持“LIMIT&IN/all/ANY/SOME subquery”
认为消息很清楚。这是最新的MySQL版本,所以我想我不能使用子查询。你可以使用子查询,但不能有限制。