gpt4 book ai didi

sqlite - SQLite在一个表中使用MAX列查询多个表

转载 作者:行者123 更新时间:2023-12-03 19:48:31 27 4
gpt4 key购买 nike

我是SQLite的新手,但在获取具有多个表的查询以正常工作时遇到问题。

表格1

MessageNum    Regression     RegressionNum
=========== ========== =============
1234567890 true 12340000
1234567890 true 23450000
1234567890 true 34560000


表2

MessageNumber    Data     ChangeNumber      
============= ==== =========
1234567890 text2 1234567
1234567890 text8 2345678
1234567890 text9 3456789
1234567890 text4 4567890
1234567890 text5 5678901
1234567890 text3 6789012
1234567890 text1 7890123


我希望查询仅基于MAX(ChangeNumber)返回表2中的一行数据,以及表1中的所有匹配行。

所以结果应该是

MessageNum    Regression     RegressionNum    Data     ChangeNumber 
=========== ========== ============= ==== ============
1234567890 true 12340000 text1 7890123
1234567890 true 23450000 text1 7890123
1234567890 true 34560000 text1 7890123


我似乎无法以上面列出的格式获取查询结果。我使用了JOIN和SUB SELECTS,但似乎没有任何正常工作。

该查询应包含以下条件。

table1.MessageNum=1234567890 AND table1.Regression="true" AND MAX(table2.ChangeNumber)

最佳答案

您可以在Table2上使用WHERE NOT EXISTS仅获取最大行:

SELECT t1.MessageNum, t1.Regression, t1.RegressionNum, t2.Data, t2.ChangeNumber
FROM Table1 t1
INNER JOIN Table2 t2 ON t1.MessageNum = t2.MessageNumber
WHERE NOT EXISTS (
SELECT 1
FROM Table2 t2a
WHERE t2a.MessageNumber = t2.MessageNumber
AND t2a.ChangeNumber > t2.ChangeNumber
)
AND t1.MessageNum = 1234567890
AND t1.Regression = "true"


SQL Fiddle demo

关于sqlite - SQLite在一个表中使用MAX列查询多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19485341/

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