• 13-08-2012, 17:22:46
    #1
    Merhabalar,
    elimde bir sorgu var bunu tek satırda nasıl yapabilirim çözemedim?

    select kullaniciid,devirkullaniciid,tutar,tarih,kullanicilar.kullaniciadi as kullaniciadi from kasa_hareket inner join kullanicilar on kasa_hareket.kullaniciid=kullanicilar.id order by kasa_hareket.id desc
    kullaniciid ve devirkullaniciid değerlerini kullanicilar.id ye göre aratıp adları listeletmek istiyorum sizce 2 si aynı anda olabilir mi? Şu an sadece kullaniciid nin ismini listeliyorum.
  • 19-08-2012, 05:00:55
    #2
    where şartında yazmayı dener misin

    where ...devirkullaniciid= kullanicilar.id

    şeklinde. o zaman filtrelemiş olursun..

    soruyu doğru anlayabildiysem böyledir.
  • 20-08-2012, 02:43:01
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    nurettin adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,
    elimde bir sorgu var bunu tek satırda nasıl yapabilirim çözemedim?

    select kullaniciid,devirkullaniciid,tutar,tarih,kullanicilar.kullaniciadi as kullaniciadi from kasa_hareket inner join kullanicilar on kasa_hareket.kullaniciid=kullanicilar.id order by kasa_hareket.id desc limit 10
    kullaniciid ve devirkullaniciid değerlerini kullanicilar.id ye göre aratıp adları listeletmek istiyorum sizce 2 si aynı anda olabilir mi? Şu an sadece kullaniciid nin ismini listeliyorum.
    Yanlış anlamadıysam istediğini:

    select  k.kullaniciadi, d.kullaniciid, d.devirkullaniciid, d.tutar, d.tarih from kullanicilar k, kasa_hareket d where ( k.id=d.kullaniciid or k.id=d.devirkullaniciid ) order by d.id desc
    Yani kullanicilar tablosuna k, kasa_hareket tablosuna d olarak alias verip istediğin alanları ve şartını yazacaksın.

    Tablo yapısını ve istediğin alanlarını tam olarak yazsaydın daha iyi yardımcı olurduk ama bu şekilde de nasıl yapacağın hakkında fikrin olur.
  • 20-08-2012, 06:04:25
    #4
    devirkullanıciid' nin hangi kullanıcı olduğunu yani adını listeletmek istiyorsan ve eğer bu id lerin karşışığını yine kullanıcı tablosundan alman gerekiyorsa tek yapman gereken aynı tabloyu farklı bir alias ile tekrar JOIN etmek...

    SELECT 
    HAR.kullaniciid,
    HAR.devirkullaniciid,
    tutar,
    tarih,
    KUL.kullaniciadi as kullaniciadi
    FROM kasa_hareket as HAR 
    INNER JOIN kullanicilar as KUL ON HAR.kullaniciid=KUL.id 
    INNER JOIN kullanicilar as KUL2 ON HAR.devirkullanıciid=KUL2.id 
    ORDER BY HAR.id desc
    projenin detaylarını bilmediğimizden INNER JOIN yerine LEFT JOIN' de kullanman gerekiyor olabilir bu arada...