gpt4 book ai didi

mysql - 加入 3 个表并从一个表中获取最后更新日期

转载 作者:行者123 更新时间:2023-11-30 22:55:38 25 4
gpt4 key购买 nike

我有一个查询,我要从 4 个表中查找结果:客户、客户计划、INSPLANS 和 CLIENTLOG我的查询从表中提取了更多信息,但简化后的信息如下:

select clients.name,
insplans.desc,
clientplans.group_no,
convert (varchar,clientlog.FNDATE,112) as LASTUPDATEDATE,
FROM
PROJECT.DBO.CLIENTS
join CLIENTPLANS
on clients.RECORD_ID = clientplans.CLIENT_ID
join INSPLANS
on insplans.RECORD_ID = clientplans.PLAN_ID
join CLIENTLOG
on clientlog.CLIENT_ID = clients.RECORD_ID
WHERE clients.record_id = clientplans.client_id
and clientplans.SEQUENCE_NUM < 2

我的问题是,当我加入 CLIENTLOG 表时,我的结果从 3k 膨胀到 33K,其中包含大量重复项。 clientlog 表显示对 clients 表进行的每次更新的条目。我只是想获得记录的最后更新日期。我知道我应该通过转换函数使用 MAX,但我感觉我连接表的方式也不正确。如果有人能提供一些说明,那就太棒了。

谢谢

最佳答案

试试这个..

SELECT clients.NAME, 
insplans.desc,
clientplans.group_no,
CONVERT (VARCHAR, clientlog.fndate, 112) AS LASTUPDATEDATE,
FROM project.dbo.clients
JOIN clientplans
ON clients.record_id = clientplans.client_id
JOIN insplans
ON insplans.record_id = clientplans.plan_id
JOIN (SELECT Max(fndate) FNDATE,
client_id
FROM clientlog
GROUP BY clientid) CLIENTLOG
ON clientlog.client_id = clients.record_id
WHERE clients.record_id = clientplans.client_id
AND clientplans.sequence_num < 2

关于mysql - 加入 3 个表并从一个表中获取最后更新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512310/

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