Autor | Zpráva | ||
---|---|---|---|
PetrXY Profil * |
#1 · Zasláno: 2. 6. 2013, 23:18:13
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 |
#2 · Zasláno: 2. 6. 2013, 23:24:34
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 * |
#3 · Zasláno: 2. 6. 2013, 23:29:42
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 |
#4 · Zasláno: 2. 6. 2013, 23:46:50
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 * |
#5 · Zasláno: 2. 6. 2013, 23:52:30
takže to mám vyřešit v php? no nepotěšil si mě :D
|
||
aDAm Profil |
#6 · Zasláno: 3. 6. 2013, 08:51:14
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. |
||
Časová prodleva: 11 let
|
0