gpt4 book ai didi

sql join - 仅从第二个表中选择第一行

转载 作者:行者123 更新时间:2023-12-05 08:44:46 26 4
gpt4 key购买 nike

有点 sql 菜鸟,在表 a 中有一个客户代码/电话号码列表,表 b 中有所有通话记录。

我想从表 b 中为表 a 中的每个客户代码/电话号码选择最近的调用。

到目前为止我有:

SELECT     A.CustomerCode, A.PhoneNumber, B.StartTime
FROM tableA A INNER JOIN
tableB B ON ( A.PhoneNumber = B.PhoneNumber
AND A.CustomerCode = B.CustomerCode )
ORDER BY A.CustomerCode, A.CLI, B.StartTime DESC

但这会显示 TableB 的所有结果。如果有意义的话,我真的只是想接到最近的电话吗?

最佳答案

您可以在其自身上加入调用表,并指定后面的行可能不存在。喜欢:

SELECT       A.CustomerCode, A.PhoneNumber, B.StartTime
FROM tableA A
INNER JOIN tableB B
ON A.PhoneNumber = B.PhoneNumber
AND A.CustomerCode = B.CustomerCode
LEFT JOIN tableB later
ON B.PhoneNumber = later.PhoneNumber
AND B.CustomerCode = later.CustomerCode
AND later.StartTime > B.StartTime
WHERE later.PhoneNumber is null

条件 later.PhoneNumber is null 表示不能有后面的行。如果有多行具有相同的开始时间,这将选择所有行。

这允许您从最近的调用中选择所有列。

关于sql join - 仅从第二个表中选择第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1819003/

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