1

私は 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 行だけ返すクエリと、テーブル 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)
4

2 に答える 2

0

MAX集計関数を使用して、これを試してください:

SELECT T2.MessageNumber, T1.Regression, T1.RegressionNum, T2.Data, T2.ChangeNumberMax 
FROM (SELECT MessageNumber, MAX(ChangeNumber) as ChangeNumberMax, Data
FROM Table2
GROUP BY MessageNumber) T2
INNER JOIN Table1 T1
ON T2.MessageNumber=T1.MessageNum
WHERE T1.MessageNum=1234567890 AND T1.Regression="true"
于 2013-10-21T02:44:38.113 に答える