Autor | Zpráva | ||
---|---|---|---|
Taps Profil |
#1 · Zasláno: 10. 6. 2009, 11:31:38 · Upravil/a: Taps
mám následující strukturu tabulky
odbor id nazev oddeleni id id_odbor nazev a mám následující kod, který mi bohužel nefunguje select distinct(o.nazev) as nazevodboru,od.nazev as nazevoddeleni from odbor o left join oddeleni od on o.id=od.id_odbor group by o.id order by nazevodboru ASC Potřeboval bych aby se mi vypisoval odbor a pod ním jeho oddělení. např. takto odbor 1 oddělení 1 oddělení 2 odbor 2 odbor3 oddělení 1 Je také nutné brát v potaz že někdy existuje pouze odbor bez oddělení. Mohl by mi někdo poradit |
||
TomášK Profil |
#2 · Zasláno: 10. 6. 2009, 11:55:12
Já bych tohle řešil až na úrovni aplikace - z databáze bych vytáhl odbory a oddělení - třeba i zvlášť nebo pomocí LEFT JOINu bez GROUP. Při výpisu bych měl tak dva cykly - jeden pro odbory a vnořený, který by vypisoval oddělení pro každý odbor. A zdá se mi zbytečný distinct - předpokládám, že spíš nebudou dva obory se různým id a stejným názvem (a pokud ano, tak je možná budeš chtít vypsat oba).
|
||
Taps Profil |
#3 · Zasláno: 10. 6. 2009, 11:57:57
TomášK
dva cykly je zbytečné dělat, toto musí jít řešit na urovni sql dotazu |
||
radas Profil * |
#4 · Zasláno: 10. 6. 2009, 11:58:01
Taps
tak jak to navrhoval TomášK jsem to udělal u svého více urovňového menu, nic lepšího jsem nenašel.. |
||
Taps Profil |
#5 · Zasláno: 10. 6. 2009, 11:58:54
radas
abych pravdu řekl tak toto řešení se mi moc nezamlouvá. |
||
radas Profil * |
#6 · Zasláno: 10. 6. 2009, 12:13:13
mi taky ne..ale jestli najdeš lepši ta doufam že se o něj poděliš, řešil jsem to už kdysi a nic moc jsem nevyřešil
|
||
TomášK Profil |
#7 · Zasláno: 10. 6. 2009, 12:19:47 · Upravil/a: TomášK
Z SQL dotazu ti můžou vypadnout data ve tvaru buď
obor1 oddeleni1 obor1 oddeleni2 obor2 null obor3 oddeleni1 nebo dvě oddělené sady dat: obor1 obor2 obor3 oddeleni1(1) oddeleni2(1) oddeleni1(3) Nenapadá mě žádná lepší struktura, kterou bys z toho mohl dostat. Problém je, že všechny záznamy, které ti vypadnou z jednoho dotazu mají stejné sloupce. Nejde tedy mít ve výsledku záznam pro obor, pak záznam pro oddělení, pak zas pro obor apod. Takže buď v u každého záznamu musí být informace jak o oboru, tak o oddělení (jen LEFT JOIN) nebo musíš získat dvě různé sady výsledků (dva SELECTy). |
||
Kajman_ Profil * |
#8 · Zasláno: 10. 6. 2009, 12:33:53
Obě řešení zkoušel porovnávat Jakub
http://php.vrana.cz/srovnani-dotazu-do-zavislych-tabulek.php Ale někdy je prostě vhodnější to a někdy ono. |
||
Časová prodleva: 15 let
|
0