• 15-12-2010, 22:39:08
    #1
    Arkadaşlar şuan kafa durdu . sorun şöyle....

    yazılar tablosu : id text yazar_id tarih title
    (yazar_id foreign key)

    yazar tablosu : id name sira hide photo email

    her bir yazarın son yazısı nı gostermem lazım ,yani yazar listesi olacak ad soyad son yazi basligi vs vs. foreach ile gösterirken yazar ın id si ASC olacak, şuan kullandığım ve kafa durduğu için yazamadığım sql ise şöyle.

    kod codeigniter active record dur

    $this->db->select(' max(p.name) AS name,
      max(p.id) AS yazar_id,
      max(a.title) AS title,
      max(a.tarih) AS tarih,
     
      max(a.id) AS yazi_id'
      );
    
      $this->db->from(' yazar p');
      $this->db->join('yazilar a ','p.id = a.yazar_id');
    $this->db->where("a.hide ='N' and  p.hide ='N'");
     $this->db->group_by('p.id');
     $this->db->order_by('a.tarih DESC');
  • 15-12-2010, 23:09:04
    #2
    Üyeliği durduruldu
    yanlış anlamadıysam , join ile alınabilir
    SELECT * 
    FROM yazarlar 
    INNER JOIN yazilar 
    ON yazilar.yazar_id = yazarlar.id  
    ORDER BY yazilar.id DESC,yazarlar.name ASC
  • 16-12-2010, 06:44:01
    #3
    yok hocam oda olmuyor çünkü her yazarın son yazısını göstereceğimiz için group lamak lazım mysql de group ve order DESC aynı anda çalışmıyor bugmış galiba.
  • 17-12-2010, 03:57:07
    #4
    Sanırım çözüm şu şekilde:
    with tabloa as(
    select yazar_id
    from yazilar
    group by yazar_id
    )
    with tablob as(
    select yazar_id
    from tabloa, yazilar
    where tabloa.yazar_id = yazilar.yazar_id
    Order By yazilar.id DESC limit 1
    )
    select name, title, tarih
    from tablob, yazar
    where tablob.yazar_id = yazar.id
    Order By yazar.id ASC;
    Sorgunun imlasında hata olabilir, kontrol edin.
  • 17-12-2010, 12:23:23
    #5
    mysql 5.1 de bugmuş ordeve group un beraber kullanılmasında bir bug varmış yani. subquery ile hallettim teşekkürler
  • 17-12-2010, 21:35:33
    #6
    Eposta Aktivasyonu Gerekmekte
    Group by , verileri sanal bir tablo oluşturup tuttuğu için where kullanımından kaynaklı bir problem yaşıyor olabilirsin.Where gerçek tablolarda kullanılır dolayısıyla gruplarken kullanmak hataya sebep oluyor.

    Group by kullanırken where yerine having kullanırsan sorun yaşamazsın.Tabi sorun bundan kaynaklanıyor ise.