2

table からtype最大値を持つ値を取得する必要があります。私もあなたに見せるためにグループ化しました。messageidmesaj_mesajlartype

私のクエリ:

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
4

1 に答える 1

2

これを行う 1 つの方法はMAX()、各トピック ID のタイプを取得することです。

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
于 2013-06-08T21:45:38.817 に答える