需要获取最大messageid的类型值

时间:2020-12-25 20:09:55

I need to get type value of which has maximum value of messageid from table mesaj_mesajlar. I grouped too by type for show you.

我需要获取表mesaj_mesajlar中具有messageid最大值的类型值。我也按类型分组给你看。

My query:

SELECT
   mesaj_konular.id AS topicid,
   mesaj_mesajlar.id AS messageid,
   mesaj_mesajlar.tip AS type,
   uyeler.ad AS uname
FROM mesaj_konular 
INNER JOIN uyeler ON uyeler.id = mesaj_konular.uid 
INNER JOIN mesaj_mesajlar ON mesaj_mesajlar.konuid = mesaj_konular.id
GROUP BY 
   topicid,
   type

Table:

topicid     messageid   type    uname
1           1           0       x
1           2           1       x
2           20          0       x
3           15          0       x
3           17          1       x

result should be:

结果应该是:

topicid     messageid   type    uname
1           2           1       x
2           20          0       x
3           17          1       x

1 个解决方案

#1


2  

One way to do this is to get the MAX() of type for each topicid:

一种方法是为每个topicid获取类型的MAX():

SELECT
   mesaj_konular.id AS topicid,
   mesaj_mesajlar.id AS messageid,
   mesaj_mesajlar.tip AS type,
   uyeler.ad AS uname
FROM mesaj_konular 
    INNER JOIN uyeler ON uyeler.id = mesaj_konular.uid 
    INNER JOIN mesaj_mesajlar ON mesaj_mesajlar.konuid = mesaj_konular.id
    INNER JOIN (
           SELECT konuid, MAX(tip) MaxTip
           FROM mesaj_mesajlar 
           GROUP BY konuid
    ) max_mesaj_mesajlar ON mesaj_mesajlar.konuid = max_mesaj_mesajlar.konuid 
          AND mesaj_mesajlar.tip = max_mesaj_mesajlar.MaxTip
GROUP BY 
   topicid

#1


2  

One way to do this is to get the MAX() of type for each topicid:

一种方法是为每个topicid获取类型的MAX():

SELECT
   mesaj_konular.id AS topicid,
   mesaj_mesajlar.id AS messageid,
   mesaj_mesajlar.tip AS type,
   uyeler.ad AS uname
FROM mesaj_konular 
    INNER JOIN uyeler ON uyeler.id = mesaj_konular.uid 
    INNER JOIN mesaj_mesajlar ON mesaj_mesajlar.konuid = mesaj_konular.id
    INNER JOIN (
           SELECT konuid, MAX(tip) MaxTip
           FROM mesaj_mesajlar 
           GROUP BY konuid
    ) max_mesaj_mesajlar ON mesaj_mesajlar.konuid = max_mesaj_mesajlar.konuid 
          AND mesaj_mesajlar.tip = max_mesaj_mesajlar.MaxTip
GROUP BY 
   topicid