1. sayfa
|
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. < Resime gitmek için tıklayın > |
|
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. |
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... |
1. sayfa
Şö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.