Şimdi Ara

Sql Fırtınası

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
9
Cevap
0
Favori
1.492
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • merhaba arkadaşlar. Bu forumda sql konusunda çok mesaj yazdım ama şimdi kendim bir konuda yardıma ihtiyacım var.
    Şöyle Bir Yapım Var.

    id-----ust_id-----baslik
    1------0----------Ana grup
    22-----1----------ana gruba bağlı malzemeler
    53-----1----------ana gruba bağlı diğer mallar
    4------0----------grup1
    15-----4----------grup 1 e bağlı mallar
    6------1----------ana grup a bağlı başka mallar
    17-----4----------grup 1 e bağlı başka mallar

    .....
    id unique ve primary key
    her ust_id bir id'ye bağlı.
    benim yazmak istediğim sql id ve buna bağlı ust_id leri sırayla vermeli:

    örneğin:
    ana group
    ana gruba bağlı malzemeler
    ana gruba bağlı diğer mallar
    ana grup a bağlı başka mallar
    grup1
    grup 1 e bağlı mallar
    grup 1 e bağlı başka mallar

    ilgilenen herkese şimdiden teşekkürler.







  • Merhaba, Doğru anladıysam ;

    select * from kategori ORDER BY id , ust_id.

    gibi bir sorgu yeterli olur gibi geldi bana
  • quote:

    Orjinalden alıntı: Aspci79

    Merhaba, Doğru anladıysam ;

    select * from kategori ORDER BY id , ust_id.

    gibi bir sorgu yeterli olur gibi geldi bana


    ilginiz için teşekkürler.
    Bu kadar kolay olsaydı bu konuyu açmazdım aslında.
    yazdığınız şekilde sql önce ana groupları, ana gruplarda sonra da alt grupları sıralıyor.
    halbuki ben önce ana grup sonrada buna bağlı alt grupları sıralamak istiyorum.

    yani
    ana grup1
    altgrup1
    altgrup2
    anagrup2
    baba grup 2
    baba grup1
    baba grup2
    ....

    şeklinde sıralamak istiyorum.
  • quote:

    Orjinalden alıntı: mc92001


    quote:

    Orjinalden alıntı: Aspci79

    Merhaba, Doğru anladıysam ;

    select * from kategori ORDER BY id , ust_id.

    gibi bir sorgu yeterli olur gibi geldi bana


    ilginiz için teşekkürler.
    Bu kadar kolay olsaydı bu konuyu açmazdım aslında.
    yazdığınız şekilde sql önce ana groupları, ana gruplarda sonra da alt grupları sıralıyor.
    halbuki ben önce ana grup sonrada buna bağlı alt grupları sıralamak istiyorum.

    yani
    ana grup1
    altgrup1
    altgrup2
    anagrup2
    baba grup 2
    baba grup1
    baba grup2
    ....

    şeklinde sıralamak istiyorum.






    Merhaba

    Karmaşık gibi görünen sorunların cevapları genelde basittir sözünden yola çıkarak size basit görünen bir cevap yazdım. Yapmak istediğiniz Ana İd değeri altında alt idleri listelemekse TSQL de bu kod işinizi görür sanırım.

    SELECT id, ust_id, ad
    FROM table1
    GROUP BY ust_id, id, ad


    Ben yukarıda gösterdiğiniz şekilde test ettim datalar doğru dönüyor.



     Sql Fırtınası




  • Teşekkürler Aspci79 .
    resim koymanız konuyu daha anlaşılır hale getirdi.
    ben ana grupların üst_id değerlerini 0 "sıfır" atmıştım. ana grupların ust_id'lerine kendi id numaralarını atınca sıralama doğru şekilde çalışıyor.
    bu şekilde de işimi görüyor.
    bu arada db oracle ama temel sql kodları zaten hemen hemen bütün db lerde aynı şekilde çalışıyor.
  • quote:

    Orjinalden alıntı: mc92001

    Teşekkürler Aspci79 .
    resim koymanız konuyu daha anlaşılır hale getirdi.
    ben ana grupların üst_id değerlerini 0 "sıfır" atmıştım. ana grupların ust_id'lerine kendi id numaralarını atınca sıralama doğru şekilde çalışıyor.
    bu şekilde de işimi görüyor.
    bu arada db oracle ama temel sql kodları zaten hemen hemen bütün db lerde aynı şekilde çalışıyor.



    Önemli değil , aslında yazılımla uğraşırken sorunları biz karmaşıklaştırıyoruz çoğu zaman , farklı pencerelerden bakabilmeyi forum okumayı bu yüzden seviyorum.

    İyi Çalışmalar dilerim.
  • quote:

    Orjinalden alıntı: mc92001


    bu arada db oracle ama temel sql kodları zaten hemen hemen bütün db lerde aynı şekilde çalışıyor.



    veri tabanı oracle ise connect_by prior (ansi değil pl/sql ama güzel bir şey) de deneyebilirsiniz.

    select ad, alt_id, ust_id, level
    from tablo
    connect by prior alt_id = ust_id
    start with alt_id = 1;

    şeklinde bir kullanımı var. Tabi sonuçta seceresini getirecektir. Ancak sabit kırılım olmayan sistemlerde çok işe yarıyor...
  • Yapay Zeka’dan İlgili Konular
    Sql yardım
    2 yıl önce açıldı
    SQL ve Python hk.
    geçen yıl açıldı
    php nuke kurulumu
    20 yıl önce açıldı
    Daha Fazla Göster
  • quote:

    Orjinalden alıntı: gergozen


    quote:

    Orjinalden alıntı: mc92001


    bu arada db oracle ama temel sql kodları zaten hemen hemen bütün db lerde aynı şekilde çalışıyor.



    veri tabanı oracle ise connect_by prior (ansi değil pl/sql ama güzel bir şey) de deneyebilirsiniz.

    select ad, alt_id, ust_id, level
    from tablo
    connect by prior alt_id = ust_id
    start with alt_id = 1;

    şeklinde bir kullanımı var. Tabi sonuçta seceresini getirecektir. Ancak sabit kırılım olmayan sistemlerde çok işe yarıyor...



    Çok Teşekkürler.
    Bunu keşke 2 hafta önce öğrenseydim. bu sql'in dündürdüğü sonucu alabilmek için db'ye bir procedure yazdım. baya uğraşmıştım.Bu kadar basitmiş.
    genelde pl/sql çok fazla başvurmuyorum. ama herşeyi kod yazarak çözemiyorsunuz. Bazen ufak tefek db fonksiyonları sizi büyük bir kod yığını yazmaktan kurtarıyor. Bu konuyu zaten çözdüm ama yazdığınız sql başka bir konuda bana çok yardımcı oldu. Sanırım bundan sonra kod yerine db fonksiyonu ve procedure'lere daha çok başvuracağım.
    İyi Çalışmalar.




  • quote:

    Orjinalden alıntı: mc92001


    quote:

    Orjinalden alıntı: gergozen


    quote:

    Orjinalden alıntı: mc92001


    bu arada db oracle ama temel sql kodları zaten hemen hemen bütün db lerde aynı şekilde çalışıyor.



    veri tabanı oracle ise connect_by prior (ansi değil pl/sql ama güzel bir şey) de deneyebilirsiniz.

    select ad, alt_id, ust_id, level
    from tablo
    connect by prior alt_id = ust_id
    start with alt_id = 1;

    şeklinde bir kullanımı var. Tabi sonuçta seceresini getirecektir. Ancak sabit kırılım olmayan sistemlerde çok işe yarıyor...



    Çok Teşekkürler.
    Bunu keşke 2 hafta önce öğrenseydim. bu sql'in dündürdüğü sonucu alabilmek için db'ye bir procedure yazdım. baya uğraşmıştım.Bu kadar basitmiş.
    genelde pl/sql çok fazla başvurmuyorum. ama herşeyi kod yazarak çözemiyorsunuz. Bazen ufak tefek db fonksiyonları sizi büyük bir kod yığını yazmaktan kurtarıyor. Bu konuyu zaten çözdüm ama yazdığınız sql başka bir konuda bana çok yardımcı oldu. Sanırım bundan sonra kod yerine db fonksiyonu ve procedure'lere daha çok başvuracağım.
    İyi Çalışmalar.




    PL/SQL 'in oldukça güzel çözümleri var aslında. Ama bunları kullanmak, ileride veritabanı değişikliği gerekirse çok büyük sorunlar doğurabilir... Onun için ansi sql ve kodlarla çözüme gidilemediği çok özel durumlarda kullanılmasında fayda var tabi.

    Size de iyi çalışmalar...



    < Bu mesaj bu kişi tarafından değiştirildi gergozen -- 21 Aralık 2008; 20:35:55 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.