gpt4 book ai didi

MySQL 查询根据二级条件为关系表选择最大日期

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

这是我的 SQLFIDDLE

基本上我有三个表,A issues、journals 和 journal details。我想在单个查询中使用以下表示方式。

id    | status_id | X |
90001 | 12 | NULL |
90002 | 12 | NULL |
90003 | 12 | 2015-01-06 |
90004 | 12 | 2015-01-09 |

适用的规则是 X 是最大“日志”创建日期,在该日期存在“fixed_version_id”== 55。

请帮忙。

谢谢你,

最佳答案

我建议您首先获取满足您要求的所有期刊的详细信息,如下所示:

SELECT *
FROM journal_details
WHERE property = 'fixed_version_id' AND value = '55';

然后您可以使用这些值来获取满足此要求的 journal 行的创建日期:

SELECT j.issue_id, MAX(j.created_on) AS created_on
FROM journals j
JOIN journal_details jd ON jd.journal_id = j.id AND jd.property = 'fixed_version_id' AND jd.value = '55'
GROUP BY j.issue_id;

从这些结果中,您可以加入以获取所有问题。如果您使用外部联接,对于任何不符合条件的期刊,您将获得 null:

SELECT i.id, i.status_id, tmp.created_on
FROM issues i
LEFT JOIN(
SELECT j.issue_id, MAX(j.created_on) AS created_on
FROM journals j
JOIN journal_details jd ON jd.journal_id = j.id AND jd.property = 'fixed_version_id' AND jd.value = '55'
GROUP BY j.issue_id
) tmp ON tmp.issue_id = i.id;

这是一个 SQL Fiddle示例。

关于MySQL 查询根据二级条件为关系表选择最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33531264/

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