gpt4 book ai didi

MySQL 多子查询

转载 作者:行者123 更新时间:2023-11-29 08:28:23 25 4
gpt4 key购买 nike

我想查询这样的内容:

SELECT id 
FROM reparacoes
WHERE edit_data= (select max(edit_data)
from reparacoes
where id_reparacao= (select id_reparacao from reparacoes));

但是,子查询 select id_reparacao from reparacoes 返回超过 1 行(如预期),并且查询不起作用。我应该使用 joins 来执行此操作吗?如果是,怎么办?

所以它的工作原理如下:每次我编辑“reparacoes”行(在我的网站上)时,我都会INSERT插入一个新行(我不UPDATE)并创建一个新的 ID 以及 edit_data(编辑的日期时间),但 id_reparacoes 保持不变。

我想要一个从 reparacoes 返回 ID 的查询,其中 edit_data 是给定 id_reparacao 中最新的。但我有多个 id_reparacao,我希望它可以查询所有 id_reparacao(这就是我尝试 ...where id_reparacao= (从 reparacoes 中选择 id_reparacao)的原因

PS:抱歉,我知道这个问题已经被提问/回答了很多次,但我找不到任何可以帮助我的东西。

最佳答案

我想你想要这样的东西:

SELECT  rep.ID
FROM reparacoes rep
INNER JOIN
( SELECT id_reparacao, MAX(Edit_Data) AS Edit_Data
FROM reparacoes
GROUP BY id_reparacao
) MaxRep
ON MaxRep.id_reparacao = rep.id_reparacao
AND MaxRep.Edit_Data = rep.Edit_Data;

子查询只需获取每个 id_reparacao 的最后一个 edit_data,然后通过执行 INNER JOIN 返回表,将行限制为仅Edit_dataid_reparacao

的最新数据匹配的数据

关于MySQL 多子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17341767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com