Autor | Zpráva | ||
---|---|---|---|
dh.mix Profil * |
#1 · Zasláno: 18. 11. 2012, 15:27:31
ahoj, mel bych jeden dotaz se kterym si vubec nevim rady...
mam tabulku s produkty (id,nazev,cena, apod), tabulku s kategoriemi (id,nazev, apod) a pomocnou tabulku na zarazeni produktu do kategorii produkty_kategorie_xref (id,id_produkt,id_kategorie)...... pri vlozeni produktu do urcitych kategorii mam v tabulce produkty_kategorie_xref ulozene tyto zaznamy - 1,5,10 a 2,5,12 a treba 3,5,13 ........ ted s cim si nevim rady jde o vypsani produktu, ktere jsou v kategorii, kdyz mam vybranych z filtru vice kategorii, napr. chci vybrat produkty, ktere jsou v kategoriich 10 a 12... jak by mel vypadat takovy dotaz do databaze??? moc dekuji za jakekoliv nakopnuti, opravdu se s tim uz dlouho peru :/ Petr |
||
Tori Profil |
#2 · Zasláno: 18. 11. 2012, 16:05:57
Šlo by to např. poddotazem:
SELECT p.* FROM produkty p WHERE EXISTS (SELECT 1 FROM produkty_kategorie_xref k WHERE k.id_produkt = p.id AND k.id_kategorie IN(10,12)) anebo spojením tabulek: SELECT p.* FROM produkty p INNER JOIN produkty_kategorie_xref k ON k.id_produkt = p.id AND k.id_kategorie IN(10,12) Které z toho použít bych se rozhodla podle výsledku EXPLAIN. |
||
dh.mix Profil * |
#3 · Zasláno: 18. 11. 2012, 16:48:22
Dekuji... Zkousel jsem, ale asi to nevyresi co potrebuju, oba dotazy totiz vyberou i produkty, ktere jsou napriklad pouze v kategorii 10, coz nepotrebuju. Pokud tam bude ten poddotaz s in(10,12) tak jestli to spravne chapu, tak to bude vzdy vybirat pokud budou alespon v jedne z tech kategorii (jako operator OR)... Neni jina moznost?
Dekuju |
||
Tori Profil |
#4 · Zasláno: 18. 11. 2012, 17:00:33
Aha, nepochopila jsem, že chcete, aby produkty byly zároveň v obou kategoriích.
Koukněte na do FAQ: Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení položek mající všechny hledané vlastnosti a podle toho upravte ten poddotaz (WHERE EXISTS ...). |
||
dh.mix Profil * |
#5 · Zasláno: 18. 11. 2012, 19:20:02
Vyreseno, dekuji!
|
||
Časová prodleva: 11 let
|
0