SQL Sorgusu - Altında Kayıt Olan Veriler
-
Hocalar selam
Kısaca şöyle özetleyeyim. Kategoriler ve ürünler var. Ben sadece kategorileri listelemek istiyorum ama ona bağlı ürün olsun. Bu sorgu en performanslı yöntem sizce hangisi?
-
Hocam kategori ve ürün tablosu ayrı olmalı zaten. Sadece kategorileri listelemek istiyorsan "select * from kategoriler" yazar çekersin. "Ben sadece kategorileri listelemek istiyorum ama ona bağlı ürün olsun" şu bold yazdığım yeri biraz daha açıklarsan daha net cevaplar gelebilir hocam
-
farklı iki tablo zaten.
Kategoriler
id
adi----
Ürünler
id
kat_id
adiselect * from Kategoriler olarak istiyorum ama altında ürün olanlar gelsin sadece
-
Tablo yapını bilmiyorum fakat mantıklı bir yapın varsa aşağıdaki sorgu ile söylediğin mümkün olur..
Bu sorgu ile ürüne bağlı olan kategorileri getirebilirsin.
SELECT * FROM T_KATEGORILER K
INNER JOIN T_URUNLER U ON U.KATEGORI_ID = K.KATEGORI_ID
-
_DevLop_ bunu yazdı
Tablo yapını bilmiyorum fakat mantıklı bir yapın varsa aşağıdaki sorgu ile söylediğin mümkün olur..
Bu sorgu ile ürüne bağlı olan kategorileri getirebilirsin.
SELECT * FROM T_KATEGORILER K
INNER JOIN T_URUNLER U ON U.KATEGORI_ID = K.KATEGORI_ID
hocam bu şekilde (INNER JOIN'li olarak) örneğin bi ARABA kategorinin altında kaç tane ürün varsa o kadar geliyor.
-
Amacını tam anlatabilirsen istediğin sorguyu söyleyebiliriz ya da yazabiliriz. Ben anlayamadım tam olarak ne demek istedğini.
-
_DevLop_ bunu yazdı
Amacını tam anlatabilirsen istediğin sorguyu söyleyebiliriz ya da yazabiliriz. Ben anlayamadım tam olarak ne demek istedğini.
select * from Kategori where (select count(*) from Urun u where u.KatD = Kategori.ID)>0
hocalar şu şekilde çalıştırabiliyorum ben istediğimi ama performans olarak çok data olunca bizi üzer gibime geliyor.
-
cemnet bunu yazdı_DevLop_ bunu yazdı
Amacını tam anlatabilirsen istediğin sorguyu söyleyebiliriz ya da yazabiliriz. Ben anlayamadım tam olarak ne demek istedğini.
select * from Kategori where (select count(*) from Urun u where u.KatD = Kategori.ID)>0
hocalar şu şekilde çalıştırabiliyorum ben istediğimi ama performans olarak çok data olunca bizi üzer gibime geliyor.
Ben bizim ekipte böyle bir sorguyu asla kabul etmem yazana yazılım müdürü engel olur. Böyle bir syntax yok :). O yüzden yapmaya çalıştığını anlayabilirsem düzgün bir sorgu çıkar.
Söylediğin gibi performans açısından bakarsan 10.000 üzerindeki kayıtlarda problem çıkartmaya başlar..
-
_DevLop_ bunu yazdıcemnet bunu yazdı_DevLop_ bunu yazdı
Amacını tam anlatabilirsen istediğin sorguyu söyleyebiliriz ya da yazabiliriz. Ben anlayamadım tam olarak ne demek istedğini.
select * from Kategori where (select count(*) from Urun u where u.KatD = Kategori.ID)>0
hocalar şu şekilde çalıştırabiliyorum ben istediğimi ama performans olarak çok data olunca bizi üzer gibime geliyor.
Ben bizim ekipte böyle bir sorguyu asla kabul etmem yazana yazılım müdürü engel olur. Böyle bir syntax yok :). O yüzden yapmaya çalıştığını anlayabilirsem düzgün bir sorgu çıkar.
Söylediğin gibi performans açısından bakarsan 10.000 üzerindeki kayıtlarda problem çıkartmaya başlar..
Hocam çok basit aslında istediğim şey.
Sistemde ekli olan kategorileri listelemek istiyorum ancak şartım şu ki alt tablosunda (urunler) kayıt olan kategoriler gelsin.
-
cemnet bunu yazdı_DevLop_ bunu yazdıcemnet bunu yazdı_DevLop_ bunu yazdı
Amacını tam anlatabilirsen istediğin sorguyu söyleyebiliriz ya da yazabiliriz. Ben anlayamadım tam olarak ne demek istedğini.
select * from Kategori where (select count(*) from Urun u where u.KatD = Kategori.ID)>0
hocalar şu şekilde çalıştırabiliyorum ben istediğimi ama performans olarak çok data olunca bizi üzer gibime geliyor.
Ben bizim ekipte böyle bir sorguyu asla kabul etmem yazana yazılım müdürü engel olur. Böyle bir syntax yok :). O yüzden yapmaya çalıştığını anlayabilirsem düzgün bir sorgu çıkar.
Söylediğin gibi performans açısından bakarsan 10.000 üzerindeki kayıtlarda problem çıkartmaya başlar..
Hocam çok basit aslında istediğim şey.
Sistemde ekli olan kategorileri listelemek istiyorum ancak şartım şu ki alt tablosunda (urunler) kayıt olan kategoriler gelsin.
select k.*
from Kategori k
inner join Urun u on u.KatD = k.ID
Bu istediği sonucu vermiyorsa ya ben anlayamadım ya sen anlatamadın ya da yanlış kontrol ediyorsun. Bana anlattığına göre bu senin için en doğru sonucu vermesi gerekiyor.
:)
-
_DevLop_ bunu yazdıcemnet bunu yazdı_DevLop_ bunu yazdıcemnet bunu yazdı_DevLop_ bunu yazdı
select k.*
from Kategori k
inner join Urun u on u.KatD = k.ID
Bu istediği sonucu vermiyorsa ya ben anlayamadım ya sen anlatamadın ya da yanlış kontrol ediyorsun. Bana anlattığına göre bu senin için en doğru sonucu vermesi gerekiyor.
:)
Kategoriler
id adi
1 Spor
2 Magazin
Ürünler
id kat_id adi
1 1 bla bla
2 1 xx xxx
şu üstte ki kayda göre bana öyle bi select at ki hocam sadece spor kategorisini versin sonuç olarak. Az önce üstte yazdığın inner joinli olan sorgunun sonucunda 2 tane alt alta spor kaydı dönüyor.