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版本,所以我想我不能使用子查询。你可以使用子查询,但不能有限制。