Mysql多个不同的工作

时间:2011-10-14 15:22:54

标签: mysql distinct

我已经尝试过这个与MySQL不同的多个,我似乎无法使用任何东西...我有一个表是一个历史表。公寓可以在不同状态的同一建筑物中多次找到。我需要找到每个公寓的最新版本(ID为ORDER BY id最高的那个)

id   building appartment_id status
208  1        2             2  
209  1        3             2   
210  1        4             2   
211  1        5             2  
212  1        6             2  
213  1        7             2  
214  1        2             1  
215  1        2             3

但我该怎么做?! :S 我试过这个:

SELECT *, GROUP_CONCAT(appartment_id, building) 
    FROM `ib30_history` 
    group by appartment_id, building 
    order by id DESC

它似乎工作,但我不确定这是正确的方式,并使用输出的代码似乎使有趣的事情贯穿数据,所以我不确定它真的有效!

4 个答案:

答案 0 :(得分:1)

SELECT yourtable.id, yourtable.building, yourtable.appartment_id, yourtable.status
FROM yourtable
INNER JOIN (
    SELECT MAX(id) AS id
    FROM yourtable
    GROUP BY building, appartment_id
) AS child ON yourtable.id = child.id

答案 1 :(得分:0)

摆脱不同并使用类似的东西:

GROUP BY building,appartment_id

答案 2 :(得分:0)

您正在寻找的是GROUP BY,MySQL的文档对如何使用它有很多了解。在我输入时,OP不包含查询,所以我不能给你一个例子......

答案 3 :(得分:0)

SELECT a.* 
FROM table_name a
INNER JOIN 
(SELECT MAX(id) as max_id
 FROM table_name 
 GROUP BY appartment_id) b
ON (b.max_id = a.id)