[mysql] sprawdzenie istnienia kolejnego poziomu
Simon_di_Gaddo - 15-03-2006 10:39
[mysql] sprawdzenie istnienia kolejnego poziomu
Witam
Mam strukturę drzewiastą id | nazwa | parent_id (FAQ 1.9 metoda 2) i chciałbym w zapytaniu uzyskać odpowiedź na pytanie o kolejny poziom.
Mam zapytanie:
SELECT menu.id,menu.id as nid,menu.nazwa,menu.parent_id,menu2.id FROM menu left join menu as menu2 on menu2.parent_id=menu.id group by menu.id order by menu.id asc
Wszystko działa ok - w przypadku istnienia kolejnego poziomu dostaję id któregoś z dzieci, w innym przypadku wartość null i to mnie satysfakcjonuje... Pytanie: Czy można zapytać lepiej - zoptymalizować to zapytanie - bez zmian w strukturze tabeli?
Dziękuję za odpowiedzi Pozdrawiam
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 15-03-2006 10:39
Simon_di_Gaddo wrote: > Witam > > Mam strukturę drzewiastą id | nazwa | parent_id (FAQ 1.9 metoda 2) i > chciałbym w zapytaniu uzyskać odpowiedź na pytanie o kolejny poziom. > > Mam zapytanie: > > SELECT menu.id,menu.id as nid,menu.nazwa,menu.parent_id,menu2.id FROM > menu left join menu as menu2 on menu2.parent_id=menu.id group by menu.id > order by menu.id asc > > Wszystko działa ok - w przypadku istnienia kolejnego poziomu dostaję id > któregoś z dzieci, w innym przypadku wartość null i to mnie > satysfakcjonuje... > Pytanie: Czy można zapytać lepiej - zoptymalizować to zapytanie - bez > zmian w strukturze tabeli?
Przejdź na metode 5. Tam nie trzeba nic zmieniac w tabeli, tylko dodać nową. :)
-- P.M.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
[MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
MySQL - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
[MySQL] Czy da =?ISO-8859-2?Q?si=EA_wykonac_takie_powi=B1z?==?ISO-8859-2?Q?anie_mi=EAdzy_tabelami=2C_i_jak_to_odpyta=E6_? ==?ISO-8859-2?Q?=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plnumervin.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|