gpt4 book ai didi

sql - SQLite-获取每个表的最新记录

转载 作者:行者123 更新时间:2023-12-03 15:41:48 24 4
gpt4 key购买 nike

我一直在跟踪人们改名的情况。我有三个表:

TableOne
id
1
2

TableTwo
Date id FirstName NameID
01/02/2016 1 TestOne 1
01/03/2017 2 TestTwo 2
01/04/2015 3 TestThree 1

TableThree
Date id SecondName NameID
01/01/2016 1 TestThree 1
01/01/2018 2 TestFour 1
01/10/2014 3 TestFive 2


表2和3中的NameID映射到表1中的ID。每当一个人更改名字时,我都会向表2添加一条记录,而每当一个人更改名字时,我都会向表3添加一条记录。他们所有的历史名称。

我的目的是使用SELECT查询来拉回今天每个人的名字,即我需要为表1中的每个唯一ID选择最新的一对名字。

我的茶几应该是这样的:

NameID  FirstName   SecondName
1 TestOne TestFour
2 TestTwo TestFive


我可以得到最新的名字和名字,如下所示:

SELECT FirstName, MAX(Date) FROM TableTwo GROUP BY NameID;
SELECT SecondName, MAX(Date) FROM TableOne GROUP BY NameID;


但是,如何将这两个查询放在一起? (很抱歉,这是一个简单的问题-我对此很陌生,如果有任何不清楚的地方,请告诉我-预先感谢!)

最佳答案

使用相关子查询来查找相应的名称:

SELECT id,
(SELECT FirstName
FROM TableTwo
WHERE NameID = TableOne.id
ORDER BY Date DESC
LIMIT 1
) AS FirstName,
...
FROM TableOne;

关于sql - SQLite-获取每个表的最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41412336/

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