Ürün Sisteminde Filtre Uygulama [SQL Sorgu Yardımı]
-
Arkadaşlar bir ürün sistemi mevcut. Buna Filtre sistemi uygulamaya çalışıyorum. Lakin bir sorguda tıkandım
tblUrunler
tblFiltreler
tblUrunun_Filtreleri
Örnek 1
SELECT * from tblUrunun_Filtreleri WHERE filtre_ID = 7
Sorgusu çalışınca urun_ID = 1147 olan ürün geliyor.
Örnek 2
SELECT * from tblUrunun_Filtreleri WHERE filtre_ID = 3
Sorgusu çalışınca urun_ID = 1147 olan ürün geliyor.
Örnek 3
SELECT * from tblUrunun_Filtreleri WHERE filtre_ID = 3 AND filtre_ID = 7
Sorgusu çalışınca hiçbir ürün gelmemektedir.
Son sorguda sorun yaşamaktayım. Orada urun_ID = 1147 olan ürün gelmeli.
-
filtre id 3 olan VE filtre id 7 olan kayıtları çekmeye çalışıyorsun ?
aynı anda filtre id hem 7 hem 3 olamaz. eğer ik ürünü aynı anda çekmek istiyorsan or kullan and kullanma.
yada union all kullan
-
filtre_ID = 3 ve filtre_ID = 7 olmalı. Ama ürünleri listelerken o ürün 1 defa gelmeli
union all konusuna biraz daha açıklık getirebilir misin?
-
o zaman kod tam olarak şudur :
SELECT
urun_ID
from
tblUrunun_Filtreleri
WHERE
filtre_ID = 3
OR
filtre_ID = 7
Group by urun_ID
-
birden fazla şartın olduğu için or kullanman gerek, ama bu id listesi uzun ise "where in" kullanabilirsin.
mesela sorgu şöyle olsun
SELECT * FROM orders WHERE order_id = 10000 OR order_id = 10001 OR order_id = 10003 OR order_id = 10005;
where in ile şu şekilde yapabilirsin
SELECT * FROM orders WHERE order_id IN (10000, 10001, 10003, 10005);
-
şu şekilde denermisin
SELECT
urun_ID
from
tblUrunun_Filtreleri
WHERE
filtre_ID IN (3,7)
Group by urun_ID
-
where filtre_ID in(3,7) buda olur
edit: 13:17'de atılan 3 mesajın içeriğide aynı:)
cemnet tarafından 25/Şub/14 13:18 tarihinde düzenlenmiştir