• 12-08-2022, 14:15:47
    #1
    merhabalar,
    kullanıcılar ve mesajlar adında 2 tablom var.
    istediğim şey şu;
    kullanıcılar tablosundaki tüm kişileri listelesin ama sıralama için mesajlar tablosuna baksın 'created_at' en yüksek olanı önce listelesin.
    yani en son mesaj gönderen en üstte olacak mesajı olmayanlarda bu listeden sonra listelenmeye devam edecek,
    bunu en optimize şekilde yapmayı istiyorum yardımcı olabilecek var mı.

    Alıntı

    CREATE TABLE `kullanicilar` (
    `id` int(11) NOT NULL,
    `departman_id` int(11) NOT NULL,
    `rol_id` int(11) NOT NULL,
    `adsoyad` varchar(150) NOT NULL,
    `mail` varchar(250) NOT NULL,
    `sifre` varchar(535) NOT NULL,
    `info_x` text NOT NULL,
    `created_at` datetime NOT NULL,
    `updated_at` datetime DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    CREATE TABLE `mesajlar` (
    `id` int(11) NOT NULL,
    `gonderen_id` int(11) NOT NULL,
    `alici_id` int(11) NOT NULL,
    `mesaj` text NOT NULL,
    `durum` int(11) NOT NULL DEFAULT '0',
    `created_at` datetime NOT NULL,
    `updated_at` datetime DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    ALTER TABLE `kullanicilar`
    ADD PRIMARY KEY (`id`);

    ALTER TABLE `mesajlar`
    ADD PRIMARY KEY (`id`);
  • 14-08-2022, 16:29:57
    #2
    gonderimTarih diye bir alan kullanicilar tablosuna ekleyip ters sıralama yaparsan yeterli.

    select
    kullanicilar.*
    ,(select max(created_at) from mesajlar where mesajlar.gonderen_id=kullanicilar.id) as 'gonderimTarih'
    from kullanicilar
    order by gonderimTarih desc
    • ykyazilim
    ykyazilim bunu beğendi.
    1 kişi bunu beğendi.
  • 14-08-2022, 16:57:36
    #3
    Misafir adlı üyeden alıntı: mesajı görüntüle
    gonderimTarih diye bir alan kullanicilar tablosuna ekleyip ters sıralama yaparsan yeterli.

    select
    kullanicilar.*
    ,(select max(created_at) from mesajlar where mesajlar.gonderen_id=kullanicilar.id) as 'gonderimTarih'
    from kullanicilar
    order by gonderimTarih desc
    js ile halletmiştim hocam bu daha iyi oldu teşekkür ederim