Autor Zpráva
PetrXY
Profil *
Dobrý den, potřeboval bych propojit dvě tabulky, tabulku firmy a tabulku zaměstnanci. chci udělat výpis kde ke každé firmě se vypíší její zaměstnanci. už mám něco takového ale pořád to nefunguje tak jak má(pro každého zaměstnance to vypíše nový řádek i s tou firmou):
SELECT `ICO`, `Adresa`, `Mesto`, `PSC`, `Kraj`, `Stat`, f.`Telefon`, f.`Email`, z.`Jmeno`, z.`Prijmeni`, z.`Telefon`, z.`Email`
FROM `firma` AS f
JOIN `zamestnanci` AS z USING (`ICO`)
WHERE `ICO` = '11111111'
ORDER BY f.`ICO` ASC
Alphard
Profil
PetrXY:
pro každého zaměstnance to vypíše nový řádek i s tou firmou
To je v pořádku, takhle join funguje. Databáze vrací jednoduché sestavy dat, pokud nejde použít group_concat(), rozeberte si to v aplikaci.
Alternativně můžete použít 2 dotazy, jedním vybrat firmy, druhým zaměstatnance. Automaticky to tak dělá třeba NotORM nebo klasické ORM systémy.
PetrXY
Profil *
No myslel jsem použít group by, ale nevím jak ho tam začlenit, tenhle příkaz moc nepoužívám, hraju si s tím už hezkou chvíli a pořád to nefunguje...
Alphard
Profil
Group by spolu s group_concat se tady podle mě moc nehodí. Vybíráte hodně samostatných údajů, group_concat je vhodný třeba pro spojení klíčových slov apod.
PetrXY
Profil *
takže to mám vyřešit v php? no nepotěšil si mě :D
aDAm
Profil
Ano, protože když to zgroupuješ tak budeš mít u každé firmy jen jednoho zaměstnance. Musíš si vytáhnout firmy a pak pro fimy dotáhnout zaměstnance. Takto právě funguje zmíněné NotORM či ORM.

Můžeš to řešit i tím jedním dotazem ale musíš si ty data pak rozkouskovat. V podstatě načtešch všechny zaměstnance a k nim jejich firmy a pak si je jen rozházíš podle firem.

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