我想从每个内连接表中获取最新的行。两个表都有一个timestamp
字段。以下是我到目前为止的情况。但它只针对table1
table2
SELECT
`table1`.`fieldX`,
`table2`.`fieldY`
FROM `db`.`table1`
INNER JOIN `db`.`table2`
ON `table1`.`id` = `table2`.`id`
WHERE `table1`.`id` = ?
ORDER BY `table1`.`timestamp`
DESC LIMIT 1
目标
row_id
id
fieldX
timestamp
表1
row_id
id
fieldY
timestamp
表2
table1
两个表都可以有重复的ID。它的设计方式是存储旧版本的数据条目。
例如:table2
可以有3行具有相同的ID,而{{1}}可以有2行具有相同的ID。我想从两个表中获取最新的一行。
答案 0 :(得分:0)
如果你想从table2
获得最近的记录,可以像这样使用它SELECT SUBSTRING_INDEX(GROUP_CONCAT(t1.fieldX ORDER BY t1.timestamp DESC),',',1) as field_x, SUBSTRING_INDEX(GROUP_CONCAT(t2.fieldY ORDER BY t2.timestamp DESC),',',1) as field_y
FROM table1 t1
JOIN table2 t2 ON(t2.id = t1.id)
GROUP BY t1.id
ORDER BY t1.timestamp