| Autor | Zpráva | ||
|---|---|---|---|
| joe Profil |
#1 · Zasláno: 21. 11. 2010, 20:12:15 · Upravil/a: joe
Ahoj,
potřeboval bych pomoci s dotazem, ani nevím jak to pojmenovat a zda to půjde v tom, na čem zrovna pracuji: Tři tabulky: Recept Ingredience Recept_ingredience (vazebni) Mám tedy relaci M:N a teď bych potřeboval vybrat ty recepty, které mají nějaké ingredience - třeba tři, ale zároveň. Tento dotaz funguje, jen to je jako OR a já bych potřeboval AND. Jednoduše zapsáno: SELECT * FROM recept JOIN recept_ingredience WHERE recept_ingredience IN (1,2,3) Potřeboval bych tedy vybrat recepty, které mají ingredience s id = 1, 2 a 3. A ne s id = 1 nebo 2 nebo 3 Díky za pomoc EDIT: Teď mě napadlo použít vždy join a porovnávat jen to jedno id ... našel by se i jiný způsob? A potřeboval bych to jen v jednom dotazu a nejlépe, kdyby byly ty id takto v závorce, ať to nemusím předělávat už :) |
||
| Kajman_ Profil * |
#2 · Zasláno: 21. 11. 2010, 20:24:16
SELECT r.* FROM recept r JOIN recept_ingredience WHERE recept_ingredience IN (1,2,3) group by r.recept_id having count(distinct recept_ingredience)=3 |
||
| joe Profil |
#3 · Zasláno: 21. 11. 2010, 20:27:18 · Upravil/a: joe
Díky, zkusím, jestli to projde (není to čisté mysql ale hql do hibernate). Taky mě napadlo počítat ingredience, ale neprošel by i jiný recept, který by měl tři ingredience? Ale třeba jiné než jsou ty 1,2,3 - a jen jednu z nich.
|
||
| joe Profil |
#4 · Zasláno: 21. 11. 2010, 20:29:36
A ty recepty mohou mít ale i víc ingrediencí, ale hlavně musí mít ty co jsou uvedené.
|
||
|
Časová prodleva: 16 let
|
|||
0