Autor Zpráva
radecek
Profil
Ahoj,

MySQL mi vzdycky vraci tabulku typu NxM, tedy neco co ma presny pocet radku a sloupecku. Dejme tomu ze budeme mit nejaky seznam sluzeb, kterim se pripoji tabulka s oblastmi v kterych maji platnost. Oblasti platnosti se muze vybrat vice typu, tim musime vytvorit novou tabulku, ktere nam propoji sluzby a oblasti, abych mohli vybrat neomozeny pocet oblasti.

Pokud slozime dorat:
select * from sluzby
inner join sluzby_oblast on sluzby.id = sluzby_oblast.sluzby
inner join oblast on oblast.id = sluzby_oblast.oblast


Ziskame data typu:
1 | kniha     | praha
1 | kniha     | brno
2 | medivedek | zlin


Ale struktura dat by mela vypadat
1 | kniha     | array(praha, brno)
2 | medivedek | zlin


Toto se da vyresit pomoci cyklu:
foreach($data as $d){
  $ret[$d[$id]] = ...
}


Ale problem nastane pokud chci takovou strukturu strankovat, protoze mi lokality pridaji radky. Odstranil jsem je sloucenim (group by) podle podle id sluzby, ale pak v pruchozim cyklu musim lokality pridat extra dorazem.. (lokality musi byt v hlavnim dotazu kvuli filtrovani).

Nevite jak tento problem vyresit efektivneji moc se mi to nelibi..

Doufam ze jsem problme napsal srozumitelne.. Kody jsou pouze orientacani, proto se omlouvam za preklepy..
panther
Profil
radecek:
group_concat?
Kajman_
Profil *
Případně dát limit zajišťující stránkování do poddotazu a k tomuto výsledku teprve připojovat lokality.
radecek
Profil
Kdyz jsem provadel nejake testovani vykonu tak group_concat vysel velice pekne.. takze pouziji tento.. Dekuji :)

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:

0