• 27-06-2022, 20:05:53
    #1
    Tabloda görünen hammadde_ıd1, hammadde_ıd2, hammadde_ıd3, hammadde_ıd4, hammadde_ıd5 kısımlarına başka bir tablodaki hammadde listemin içerisindeki IDleri yazdırıyorum.Yapmak istediğim şey tabloyu çekerken hammadde_id1, hammadde_id2, hammadde_id3, hammadde_id4, hammadde_id5 kısımlarına ID yerine öteki tablodaki hammadde isimlerini getirmek.

    Tek bir kolon için bu işlemi join yöntemleriyle yapabiliyorum fakat aynı tablodaki birden çok ID'yi bir tabloda kullanmak istediğimde işin içinden çıkamadım.
    Yardımcı olursanız sevinirim.
  • 27-06-2022, 20:16:21
    #2
    En mantıklısı,

    Ürün
    Hammadde
    Ürün Hammaddeleri

    diye 3 tablo oluşturmanız. Sonrası için sıkıntı çekecek gibi görünüyorsunuz.



    inner join hammade h1 ON h1.id=urunler.hammadde_id1
    inner join hammadde h2 on h2.id=urunler.hammadde_id2

    gibi bir şey yapmanız gerekiyor.

    select’de de

    h1.name as hammadde1, h2.name as hammadde2 gibi bir şey yapmanız gerekiyor.
  • 27-06-2022, 20:27:28
    #3
    Çözemediyseniz özelden anydesk atın 2dk yardımcı olayım
  • 27-06-2022, 20:29:24
    #4
    ChostFreak adlı üyeden alıntı: mesajı görüntüle
    Çözemediyseniz özelden anydesk atın 2dk yardımcı olayım
    LEFT JOIN HAMMADDE_KAYITLARI H1 ON H1.ID = HAMMADDE_ID1
    LEFT JOIN HAMMADDE_KAYITLARI H2 ON H2.ID = HAMMADDE_ID2
    LEFT JOIN HAMMADDE_KAYITLARI H3 ON H3.ID = HAMMADDE_ID3
    LEFT JOIN HAMMADDE_KAYITLARI H4 ON H4.ID = HAMMADDE_ID4
    LEFT JOIN HAMMADDE_KAYITLARI H5 ON H5.ID = HAMMADDE_ID5

    Yaparak hammadde tablosunu 5 defa bağladım ve hepsine farklı isim verdim daha sonra select işleminde bunlar h1.hammadde_adi... diye çekerek amacıma ulaştım fakat stabilite açısından ne kadar iyi bir yöntem bilemiyorum
  • 27-06-2022, 20:31:54
    #5
    Ben olsam hammaddeleri cache dosyasında tutardım ve oradan işlem yapardım. Hammadde ekleme, silinme veya güncelleme sırasında cache güncellerdim. Sürekli veritabanına yüklenmektense dosyadan okumak daha mantıklı bir çözüm bence
  • 27-06-2022, 20:39:03
    #6
    ChostFreak adlı üyeden alıntı: mesajı görüntüle
    Çözemediyseniz özelden anydesk atın 2dk yardımcı olayım
    ChostFreak adlı üyeden alıntı: mesajı görüntüle
    Ben olsam hammaddeleri Cache dosyasında tutardım ve oradan işlem yapardım. Hammadde ekleme, silinme veya güncelleme sırasında cache güncellerdim. Sürekli veritabanına yüklenmektense dosyadan okumak daha mantıklı bir çözüm bence
    Cache kavramını çok iyi bilmiyorum stok görüntülemesi yapıldığında stoklar hammaddeleriyle beraber görünmeli o nedenle böyle bir bağlama yapıp programımda sqlden dönen veri setini gösteriyorum dosyadan okuma işleminde yanlış düşünmüyorsam SQL ile bir kısmını alıp programlama kısmında dosyadan okuyarak manuel bir birleştirmeyle görüntüleme yapmamı öneriyorsunuz
  • 27-06-2022, 20:59:20
    #7
    slhklcc98 adlı üyeden alıntı: mesajı görüntüle
    Cache kavramını çok iyi bilmiyorum stok görüntülemesi yapıldığında stoklar hammaddeleriyle beraber görünmeli o nedenle böyle bir bağlama yapıp programımda sqlden dönen veri setini gösteriyorum dosyadan okuma işleminde yanlış düşünmüyorsam SQL ile bir kısmını alıp programlama kısmında dosyadan okuyarak manuel bir birleştirmeyle görüntüleme yapmamı öneriyorsunuz
    Yazdığınız dile ve platforma göre değişir dedikleriniz. Eğer binlerce kullanıcı o sistemi kullanmayacaksa ve veritabanını çok yoran işlemler yoksa inner join işinizi görür. Ben daha çok performans açısından böyle bir yorum yaptım. Websitelerinde sayfa yüklenme süresi önemli olduğu için genelde bu tür çok önemi olmayan, sadece gösterilmesi gereken title verilerini barındıran şeylerde cache kullanırım. Ancak bir masa üstü uygulaması yazıyorsanız dosya okuma izinler vs. vs. can sıkıcı olabileceği için veritabanından devam etmek en mantıklısı
  • 27-06-2022, 21:01:14
    #8
    ChostFreak adlı üyeden alıntı: mesajı görüntüle
    Yazdığınız dile ve platforma göre değişir dedikleriniz. Eğer binlerce kullanıcı o sistemi kullanmayacaksa ve veritabanını çok yoran işlemler yoksa inner join işinizi görür. Ben daha çok performans açısından böyle bir yorum yaptım. Websitelerinde sayfa yüklenme süresi önemli olduğu için genelde bu tür çok önemi olmayan, sadece gösterilmesi gereken title verilerini barındıran şeylerde cache kullanırım. Ancak bir masa üstü uygulaması yazıyorsanız dosya okuma izinler vs. vs. can sıkıcı olabileceği için veritabanından devam etmek en mantıklısı
    bir masa üstü uygulaması ve tek kullanıcılı bir uygulama dediğiniz gibi dosya işlemleri biraz can sıkıcı veri tabanına fazla bir yük oluşturacağını sanmıyorum değerli önerileriniz için teşekkürler