• 17-06-2020, 01:35:04
    #1
    Merhaba,68 kullanicisi için son mesajları getirmek istiyorum bunun için stackoverflowdan bir adet query buldum kendi databaseime göre uyarladım fakat other denilen birşey var onu çözemedim konuyla ilgili yorumlarınızı bekliyorum
    https://stackoverflow.com/questions/...ery-other-user

    SELECT m.*
    FROM
    datingMessages m
    JOIN (
    SELECT
    MAX(id),
    CASE
    WHEN receiverID = '68' THEN senderID
    WHEN senderID = '68' THEN receiverID
    END AS otherUser
    FROM datingMessages
    GROUP BY
    CASE
    WHEN receiverID = '68' THEN senderID
    WHEN senderID = '68' THEN receiverID
    END
    HAVING otherUser IS NOT NULL
    ) other
    ON m.id = other.id


    Görsel
    https://www.dropbox.com/s/qk8mrsem3f...30.40.png?dl=0
  • 17-06-2020, 01:44:00
    #2
    Tablo yapınızı ve ulaşmak istediğiniz sonucu paylaşırsanız yardımcı olabilirim
  • 17-06-2020, 01:49:37
    #3
    tablo yapım görseldeki gibi,
    id,senderID,receiverID,message,created_date
    @pagemedia
    bu tablo mesajların tutulduğu tablo bu mesajlardan 2 kullanici arasında en son atılan mesajları çekicem belirli kullanici için,mesela osman diye birisi var osmanın mesajlaştığı kişilerin son mesajlarını çekicem whatsappdaki mesaj listesi bölümü gibi
    https://www.dropbox.com/s/d808izidkr...47.57.png?dl=0



    şu query işimi çözdü teşekkürler

    select m.* ,u.*
    from
    datingMessages m
    inner join (
    select max(id) as maxid
    from datingMessages
    where datingMessages.senderID = 68
    OR datingMessages.receiverID = 68
    group By (if(senderID > receiverID, senderID, receiverID)),
    (if(senderID > receiverID, receiverID, senderID))
    ) t1 on m.id=t1.maxid
    join
    datingUsers u ON u.id = (CASE WHEN m.senderID = 68
    THEN m.receiverID
    ELSE m.senderID
    END)