gpt4 book ai didi

mysql - 从连接的 2 个表中选择最大值

转载 作者:行者123 更新时间:2023-11-29 07:36:55 26 4
gpt4 key购买 nike

我将 mysql 用作 dbms,但在尝试仅显示来自 2 个连接表的最新数据时遇到问题。我有 tbl_A

wid       date            val
-----------------------------
atjeh 11 Jan 2018 230
banda 22 Jan 2018 113
atjeh 20 Jan 2018 266
cirebon 21 Jan 2018 130
cirebon 09 Jan 2018 144

我有 tbl_B

lid       wid
-------------
5500 atjeh
5501 cirebon
5502 banda

我想像这样加入这些表:

wid          lid          date          val
-------------------------------------------
atjeh 5500 20 Jan 2018 266
banda 5502 22 Jan 2018 133
cirebon 5501 21 Jan 2018 130

我试过这个:

SELECT tbl_A.wid, tbl_B.lid, MAX(tbl_A.date), tbl_A.val
FROM tbl_A
JOIN tbl_B ON tbl_B.wid = tbl_A.wid
GROUP BY tbl_B.witel

但输出只选择最新日期:

wid          lid          date          val
-------------------------------------------
atjeh 5500 20 Jan 2018 230 ---> should be 266
banda 5502 22 Jan 2018 133
cirebon 5501 21 Jan 2018 144 ---> should be 130

我应该怎么做才能解决这个问题?先谢谢了。

最佳答案

您需要有一个子查询,它为每个 wid 获取最新的 Date,然后再次将表连接到自身以获取您想要的所有列。

SELECT  b.lid, b.wid,
a.date, a.val
FROM tbl_B b
INNER JOIN tbl_a a
ON b.wid = a.wid
INNER JOIN
(
SELECT wid, MAX(Date) AS Date
FROM tbl_a a
GROUp BY wid
) c
ON c.wid = a.wid
AND c.Date = a.Date

这是一个 Demo .

关于mysql - 从连接的 2 个表中选择最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48378490/

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