Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

join işleminde like i nasil kullanabilirim?

Konu, 'Veritabanları' kısmında hakkican tarafından paylaşıldı.

  1. hakkican

    hakkican Üye

    Kayıt:
    15 Mayıs 2010
    Mesajlar:
    55
    Beğenilen Mesajlar:
    0
    merhaba

    iki tablom var bolgeler ve siparisler diye

    bolgeler tablom

    id | Adı | Tipi
    --------------------------
    1.1 | Marmara | 2
    1.1.1 | istanbul | 1
    1.1.2 | izmit | 1
    1.2 | ege | 2
    1.2.1 | izmir | 1
    1.2.2 | afyon

    siparis

    id | il | miktar
    --------------------------
    1 | 1.1.1 | 3
    2 | 1.1.1 | 5
    3 | 1.2.2 | 7
    4 | 1.2.1 | 5


    bunun gibi tablom var bolgeler tablosunda tip=2 bolge, tip=1 iller.
    siparisler de iller bazinda acilmis ama ben bolge bazinda rapor almak istiyorum. nasil yapabilirim?

    bu sekilde sql calistirdigimda dogal olarak siparislerde il bazinda kayit tutuldugundan bolge raporu alamiyorum. siprasi tablosunda bolge bazinda like cekmem gerekiyor ama bunu nasil yapabilirim?
     
  2. Ferhat Ozdemir

    Ferhat Ozdemir Daimi Üye

    Kayıt:
    14 Nisan 2006
    Mesajlar:
    3,265
    Beğenilen Mesajlar:
    1
    Meslek:
    Elektronik, Bilgisayar
    Şehir:
    Texas
    Kod:
    select bol.adi,bol.id,bol.tip, sum(sip.miktar) as sip_toplam
    from bolgetan bol
    left join siparis sip on bol.id=sip.il
    where bol.tipKodu=2 AND bol.adi LIKE 'degisken'
     
  3. hakkican

    hakkican Üye

    Kayıt:
    15 Mayıs 2010
    Mesajlar:
    55
    Beğenilen Mesajlar:
    0
    left join siparis sip on bol.id=sip.il

    bu satirda bolge bazinda sipariste kayit olmadigindan bos donmez mi ve degisken nedir?
     
  4. skacurt

    skacurt Â

    Kayıt:
    4 Ocak 2008
    Mesajlar:
    4,311
    Beğenilen Mesajlar:
    1
    Meslek:
    Küfeci
    Şehir:
    İstanbul
    Bu tablo yapısı ile bölgesel bazda bir gruplama yapmak için aşağıdaki gibi bir sorgu gerekir (şu alt kategori sistemini yanlış anlamadıysam)
    Kod:
    select bol.adi,bol.id,bol.tip, sum(sip.miktar) as sip_toplam
    from bolgetan bol
    left join siparis sip on sip.il Like [B]Concat(bol.id,'.%')[/B]
    where bol.tip=2 [B]Group By bol.adi[/B]
    Not: Veritabanının MySQL olduğunu farzettim. Concat ile ilgili bilginiz yoksa metin birleştirme yaptığını söyleyeyim; örneğin Concat(bol.id,'.%') -1.1 bölgesi için- '1.1.%' değeri oluşturuyor ki bu sorgudaki Like ile kullanılması gereken diziliş bu.
     
  5. hakkican

    hakkican Üye

    Kayıt:
    15 Mayıs 2010
    Mesajlar:
    55
    Beğenilen Mesajlar:
    0
    @skacurt hocam cok sagolun aradigim buydu :)