gpt4 book ai didi

MySQL - 在嵌套语句中选择最大修订

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:32 24 4
gpt4 key购买 nike

我想从 mysql 表中选择最大修订图纸。除了嵌套的选择语句(?)(所有条件都应该在“SELECT * FROM drawings”之后),我不能使用任何东西。

因此,“绘图”表是:

+----+---------+-------------+-------+---------+---------------------+
| id | number | title |format | revision| date |
+----+---------+-------------+-------+---------+---------------------+
| 100| 022588 | some title | dwg | 1 | 2016-01-07 08:00:00 |
| 101| 022588 | some title | dwg | 2 | 2016-01-07 08:01:00 |
| 103| 022588 | some title | pdf | 3 | 2016-01-07 08:15:32 |
| 104| 022588 | some title | dwg | 3 | 2016-01-07 09:10:32 |
+----+---------+-------------+-------+---------+---------------------+

我想得到的结果是(相同的数字,适当格式的最大修订):

| 103|  022588 |  some title | pdf   | 3       | 2016-01-07 08:15:32 |
| 104| 022588 | some title | dwg | 3 | 2016-01-07 09:10:32 |

再一次,我必须(必须)使用“SELECT * FROM drawings WHERE ......”开始查询。

我最后尝试的是:

SELECT * FROM `drawings` WHERE `revision` IN ( SELECT MAX(`revision`) FROM `drawings` GROUP BY `number`, `format` ) GROUP BY `number`, `format` ORDER BY `number` DESC;

...我得到了正确的 pdf 和错误/最低的 dwg(1 而不是 3)。

最佳答案

如果我没看错你的问题,那么你想从每个 format 组中获取在该组中具有最大修订号的图纸。一种方法使用子查询来识别格式及其最大修订,然后使用该子查询来限制原始 drawings 表。

SELECT t1.*
FROM drawings t1
INNER JOIN
(
SELECT format, MAX(revision) AS revision
FROM drawings
GROUP BY format
) t2
ON t1.format = t2.format AND
t1.revision = t2.revision

点击下面的链接获取正在运行的演示:

SQLFiddle

关于MySQL - 在嵌套语句中选择最大修订,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39334436/

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