Autor | Zpráva | ||
---|---|---|---|
anonymní_ Profil * |
#1 · Zasláno: 3. 6. 2015, 16:35:11
Dobrý den,
s kolegama v práci si už delší dobu lámeme hlavu s následujícím problémem. Máme v MySQL databázi tyto tabulky (popisuji jen nejdůležitější sloupce): Articles: id, name Tags: id, name Tags_connections: id, article_id, tag_id Každý článek obsahuje tedy množinu štítků (propojeno tabukou tags_connections). Potřebuji ale vybrat všechny články, které mají určité štítky. Vstupní parametry jsou tedy idčka štítků. Problém je, že chci vybrat články, které mají VŠECHNY zadané idčka. Zatím se mi podařilo vybrat články, které obsahuji alespoń jeden štítek ze vstupní množiny štítků. Já potřebuju ale, aby měly všechny zadané štítky. Věděl by někdo, jak položit takový SQL dotaz? Lze to řešit i na úrovni PHP, ale položit SQL dotaz mi příjde elegantnější. Děkuji |
||
Alphard Profil |
Typicky se to řeší seskupením podle article_id a použitím
where id in () a having count(*) = X , kde X je počet tagů (to se nejsnáze spočítá v PHP).
Doplňuji, zjistil jsem, že to je i ve FAQ Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení položek mající všechny hledané vlastnosti. |
||
Časová prodleva: 9 let
|
0