x
Table 1:
ID : AnotherID : text : updateDate
---------------------------------------------
1 : 1 : test1 : 2019-08-08 15:14:19
2 : 1 : test2 : 2019-08-08 15:15:46
3 : 2 : hello : 2019-08-08 14:14:32
Table 2:
ID : text : versionDate
---------------------------------
1 : test : 2019-08-08 16:15:32
SQL Query:
SELECT AnotherID, text
FROM Table1
WHERE updateDate<=(SELECT versionDate FROM Table2 WHERE ID=1)
It outputs everything from Table1 but I only want the rows with ID 2 and 3. How can I get the row of the AnotherID 1 rows with the highest date? Only ID 2 and 3 should be output
Advertisement
Answer
You may try this.
SELECT AnotherID, text
FROM Table1 AS T1
INNER JOIN (
SELECT ANOTHERID, MAX(UPDATEDDATE) AS UPDATEDDATE
FROM TABLE1 GROUP BY ANOTHERID) AS T2
ON T1.ANOTHERID=T2.ANOTHERID AND T1.UPDATEDDATE = T2.UPDATEDDATE
WHERE T1.updateDate<=(SELECT versionDate FROM Table2 WHERE ID=1)