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