Autor Zpráva
kat
Profil *
Dobrý den, pořád ještě otravuji. Nemůžu stále vyřešit tento problém:

mám tabulku se zbožím a párovací tabulku k přiřazování zboží do skupin. Potřebuju, aby se mně vypsalo jen to zboží, které je ve všech skupinách.
Zboží může být ve více skupinách. Sloučil jsem párovací tabulku pomocí GROUP_CONCAT, takže se mně objeví vípis:


ID-ZBOZI | GROUP
1                  12,13,15,18
2                  7,12,14,15


a nyní potřebuji vybrat jen to zboží, které patří do skupin 7 a 15 a také dalších podle uživatele. Nevíte mně někdo prosím poradit? Děkuju moc.
Můj kód:

             SELECT
              DISTINCT `eshop-zbozi`.`ID`,
              GROUP_CONCAT(`eshop-kategorie-zbozi`.`ID-KATEGORIE`) AS `GROUP`
             FROM `eshop-zbozi`,`eshop-kategorie-zbozi`
             WHERE
              `eshop-zbozi`.`ID`=`eshop-kategorie-zbozi`.`ID-ZBOZI` AND
             GROUP BY `eshop-zbozi`.`ID`
             HAVING
              7 IN(`GROUP`) AND
              15 IN(`GROUP`) AND
Kajman_
Profil *
To `group` je jeden řetězec, proto nejde použít in, ale musít tam dát např.

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_ find-in-set
Kajman_
Profil *
Ale možná by mohlo být rychlejší použít něco jako...

select `ID-ZBOZI` from `eshop-kategorie-zbozi` where `ID-KATEGORIE` in (7,15) group by `ID-ZBOZI` having count(distinct  `ID-KATEGORIE`)=2
kat
Profil *
Děkuju, mrknu na to a napíšu sem, jak to dopadlo.
kat
Profil *
Tak verze s FIND_IN_SET funguje bezvadně, děkuju mockrát.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: