Autor Zpráva
JanMatoušek
Profil
Ahoj, mám select až 500 000 záznamů. Vše funguje dobře, ale potřeboval bych k tomu připojit kategorie. Jedna položka může být ve více kategorií, takže join by mi to zduplikoval. Lze to vyřešit nějakým elegantním řešením? Kategorie nemusím mít v poli, úplně ideální by bylo, kdyby se mi kategorie vrátily, jako string ve sloupci:

name | slopuec 1...x | kategorie|
položka1| sloupec1...x |cat1, cat2, cat3 |
juriad
Profil
Buď hledej group concat, nebo se smiř s duplicitami, nebo si to pospojuj na úrovni PHP.
Mimochodem, jak máš uloženou vazbu mezi položkou a kategorií; doufám, že to není čárkou oddělený seznam id-ček.
JanMatoušek
Profil
samozřejmě mám tabulku relací. Group mě napadl, ale nevím, jak s tím docílit toho, aby select vytvořil nový sloupec, kde by se ty kategorie naplnily a oddělily čárkou.

Ideální by bylo, kdyby to šlo nějak takhle:
SELECT items.name, FCE_CAT(cats.name) as categories
JOIN cats_relations as cr ON cr.item_id = items.id
JOIN cats ON cats.id =ct.cat_id
GROUP BY id

a ta FCE_CAT by dokázala to, že by uděla to, že by mi categories vrátila jako cat1, cat2, cat3
juriad
Profil
Ta FCE_CAT se jmenuje GROUP_CONCAT
JanMatoušek
Profil
super díky moc

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: