我需要从表type
获取messageid
值的最大值mesaj_mesajlar
。我也按type
分组给你看。
我的查询:
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
表:
topicid messageid type uname
1 1 0 x
1 2 1 x
2 20 0 x
3 15 0 x
3 17 1 x
结果应为:
topicid messageid type uname
1 2 1 x
2 20 0 x
3 17 1 x
答案 0 :(得分:2)
执行此操作的一种方法是为每个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