gpt4 book ai didi

MySQL:查询 4 ​​个表时需要帮助。在所有表中查找 id 并只想列出最近的日期

转载 作者:行者123 更新时间:2023-11-29 04:45:07 27 4
gpt4 key购买 nike

我有 4 个具有相同列名 id 和 date 的表。我想要做的是获取出现在所有 4 个表中的所有 ID,并且只列出最近日期的公共(public) ID。

例如:

A
id date
1 11/30/02
1 10/01/02
2 11/15/05
4 12/01/03

B
id date
1 11/30/02
1 10/01/02
3 12/1/05
4 12/01/03

C
id date
1 11/30/02
4 12/01/03

D
id date
1 11/30/02
4 12/01/03
5 09/01/02

现在我想要的是运行查询并创建另一个如下所示的表:

E
id date
1 11/30/02
4 12/01/03

我尝试了很多东西,但都没有成功。我将不胜感激任何帮助。谢谢

最佳答案

例如

SELECT a.id
, MAX(GREATEST(a.date,b.date,c.date,d.date)) date
FROM a
JOIN b
ON b.id = a.id
JOIN c
ON c.id = a.id
JOIN d
ON d.id = a.id
GROUP
BY a.id

或者也许……

SELECT id,MAX(date) date
FROM
( SELECT tbl
, id
, MAX(date) date
FROM
( SELECT 'a' tbl, id, date FROM a
UNION
SELECT 'b', id, date FROM b
UNION
SELECT 'c', id, date FROM c
UNION
SELECT 'd', id, date FROM d
) x
GROUP
BY tbl
, id
) y
GROUP
BY id
HAVING COUNT(*) = 4;

当然,这些解决方案假设您的日期以 DATE 数据类型存储。

关于MySQL:查询 4 ​​个表时需要帮助。在所有表中查找 id 并只想列出最近的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20335265/

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