mysql查询和排序依据

mysql查询和排序依据,mysql,distinct,Mysql,Distinct,我有一个表a,其结构如下: |- id_a primary key |- id_b references table_B(id_b) |- timestamp |- varchar_column 我需要做一个连接表_B的查询,它在表_a.id_B上必须是不同的,但它还必须返回其他列(不仅是不同的列);我还需要为每个不同的表_a.id_b获取时间戳最大的记录。 我确实喜欢两种方式,但它们都返回错误: SELECT DISTINCT(table_A.id_b) FROM table_A INNER

我有一个表a,其结构如下:

|- id_a primary key
|- id_b references table_B(id_b)
|- timestamp
|- varchar_column
我需要做一个连接表_B的查询,它在表_a.id_B上必须是不同的,但它还必须返回其他列(不仅是不同的列);我还需要为每个不同的表_a.id_b获取时间戳最大的记录。 我确实喜欢两种方式,但它们都返回错误:

SELECT DISTINCT(table_A.id_b) FROM table_A INNER JOIN table_B on table_A.id_b = table_B.id_b ORDER BY table_A.timestamp DESC
还有这个:

SELECT * FROM table_A INNER JOIN table_B on table_A.id_b = table_B.id_b ORDER BY table_A.timestamp DESC GROUP BY table_A.id_b

您可以对id_b和max(timestamp)使用表_a上的内部联接,并联接其余的表

select * 
from table_A a
Inner join (
    select id_b, max(timestamp) my_time
    from table_A
    group by id_b
) t on t.id_b = a.id_b and t.my_time = a.timestamp
inner join table_B on a.id_b = table_B.id_b 
ORDER BY a.timestamp DESC

谢谢你的回复。使用您的查询,我得到以下错误:#1054-更新了on子句中的未知列“table_A.id_b”。。在第二个内部联接中使用a而不是表a