Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

SQL Join

Merhaba arkadaşlar elimde 2 tablo var birinde ürünler diğerinde ise resimler var.
Left join ile bu iki tablodan veri çektiğimde bir ürünün birden fazla resmi olduğu için aynı üründen birden fazla görünüyor.
Resimleri 1 tane ile limitlemenin bir yolu var mı acaba?
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • bensedat18 adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    39 cevap - 52 soru
    FROM urunler
        LEFT JOIN resimler
    


    şeklinde bağlarsan zannediyorum ilan başına 1 tane resim alırsın. sizin şu şekilde yaptığınızı tahmin ediyorum.

    FROM resimler
        LEFT JOIN urunler
    
    • Kesali adlı üyenin fotoğrafı Kesali
      Tam olarak kod yapını bilmediğim için


      SELECT * FROM resimler LEFT JOIN urunler ON urunid=resimid GROUP BY urunid


      Gibi birşeyler olabilir heidesql yada navicat ile query denemeleri yaparsan en iyi sonuca ulaşırsın.
      11 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      SELECT * FROM resimler LEFT JOIN urunler ON urunler.urunid=resimler.resimid WHERE urunler='$urun_id' LIMIT 1
      

      Herhalde bu doğru olan sql kodun deneme yapmak lazım birde tam olarak yapını bilmeden zor oluyor.
      11 yıl önce yazılmış
    • tahsingokalp adlı üyenin fotoğrafı tahsingokalp
      Denedim bunlar da olmuyor
      11 yıl önce yazılmış
    • tahsingokalp adlı üyenin fotoğrafı tahsingokalp
      Yapıyı da şöyle anlatayım.
      ürünler->id-isim-tip
      resim->id-tip-urunid
      11 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      şu şekilde dener misiniz?

      SELECT * FROM urunler LEFT JOIN resimler ON resimler.urunid = urunler.id WHERE urunler.id = '$urun_id'
      11 yıl önce yazılmış
    • tahsingokalp adlı üyenin fotoğrafı tahsingokalp
      Ne yazık ki bu da olmuyor.urunler.id = '$urun_id' derken sanırım tek bir ürünü alıyorsunuz.
      Benim istediğim ise bütün ürünleri listeleyeceğim fakat sadece 1er tane resim alacağım.
      11 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      ürünler->id-isim-tip
      resim->id-tip-urunid

      SELECT * FROM urunler LEFT JOIN resim ON resim.urunid = urunler.id WHERE urunler.id = '$urun_id' LIMIT 1
      


      Gibi birşey eğer joinle yapamayacaksan.

      urunid yi bir değişkende tut mesela $urun_id 5 için


      $urun_id = 5;
      
      SELECT * FROM resim WHERE urunid='$urun_id' LIMIT 1
      


      Aynı ürün idsine sahip bir tane resim getirir.
      11 yıl önce yazılmış
    • bensedat18 adlı üyenin fotoğrafı bensedat18
      şu şekilde dener misiniz?

      SELECT * FROM urunler LEFT JOIN resimler ON resimler.urunid = urunler.id GROUP BY urunler.id
      11 yıl önce yazılmış
    • tahsingokalp adlı üyenin fotoğrafı tahsingokalp
      Teşekkür ederim:)
      11 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      daha pratık cozumlerde yapilabilir. tek bir 2. bir sorgu ile istenilenleri listeyebilirsiniz
      where FIELD IN(field1,field2) gibi.
      11 yıl önce yazılmış

Cevaplar

Hiç cevap bulunamadı.