drzewa metoda 5 - zmiana węzła
A.L.E.C - 26-05-2006 01:43
drzewa metoda 5 - zmiana węzła
Próbuję walczyć z metodą 5 wg depesza. Mam problem z zamianą w środku gałęzi. Mam strukturę pracowników:
top1 / \ middle1 middle2 / \ | \ bottom1 bottom2 bottom3 bottom4
Teraz chcę zamienić rodzica dla bottom3 i bottom4 z middle2 na middle1. Jak to wykonać. Po zmianie drzewo powinno wyglądać następująco:
top1 - middle2 | middle1 - bottom4 / | \ bottom1 bottom2 bottom3
-- Aleksander A.L.E.C Machniak
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
baklarz - 26-05-2006 01:43
Dnia 25.05.2006 A.L.E.C <alec1WYTNIJTO@poczta.onet.pl> napisał/a: > Próbuję walczyć z metodą 5 wg depesza. Mam problem z zamianą w środku gałęzi. > Mam strukturę pracowników: > > top1 > / \ > middle1 middle2 > / \ | \ > bottom1 bottom2 bottom3 bottom4 > > Teraz chcę zamienić rodzica dla bottom3 i bottom4 z middle2 na middle1. Jak to > wykonać. Po zmianie drzewo powinno wyglądać następująco: > > top1 - middle2 > | > middle1 - bottom4 > / | \ > bottom1 bottom2 bottom3 Message-ID: <slrndvoe42.a40.tomek@localhost.localdomain>
-- Tomasz Drobiszewski
A.L.E.C - 26-05-2006 01:43
> Message-ID: <slrndvoe42.a40.tomek@localhost.localdomain>
nie widziałem tego wcześniej, ale zauważyłem, że rozwiązanie wymaga kolumny id w tabeli powiązań. Może zna ktoś inny sposób?
-- Aleksander 'A.L.E.C' Machniak
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
A.L.E.C - 26-05-2006 01:43
> > > Message-ID: <slrndvoe42.a40.tomek@localhost.localdomain> > > nie widziałem tego wcześniej, ale zauważyłem, że rozwiązanie wymaga kolumny id w > tabeli powiązań. Może zna ktoś inny sposób?
dodam, że sposób podany w faq, nie działa na mysql 5.0 (dokładnie DELETE), a o tą bazę mi głównie chodzi.
-- Aleksander 'A.L.E.C' Machniak
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 26-05-2006 01:44
A.L.E.C wrote: >>>Message-ID: <slrndvoe42.a40.tomek@localhost.localdomain> >> >>nie widziałem tego wcześniej, ale zauważyłem, że rozwiązanie wymaga kolumny id w >>tabeli powiązań. Może zna ktoś inny sposób?
Odpowiedz sobie na jedno pytanie. Dlaczego nie masz kolumny id w tabeli powiązań. I odpowiednio wykorzystaj odpowiedź.
> dodam, że sposób podany w faq, nie działa na mysql 5.0 (dokładnie DELETE), a o > tą bazę mi głównie chodzi.
Dodaj jeszcze dlaczego nie działa.
-- P.M.
A.L.E.C - 27-05-2006 00:39
=?iso-8859-2?Q?Re:_drzewa_metoda_5_-_zmiana_w=EAz=B3a?=
Paweł Matejski wrote:
> Odpowiedz sobie na jedno pytanie. Dlaczego nie masz kolumny id w > tabeli powiązań. I odpowiednio wykorzystaj odpowiedź.
W faq nie ma tej kolumny, jest dopiero użyta w rozwiązaniu dotyczącym przenoszenia gałęzi. Dodałem, ale nie pomogło.
> Dodaj jeszcze dlaczego nie działa.
DELETE FROM powiazania WHERE id IN ( SELECT r2.id FROM powiazania r1 JOIN powiazania r2 ON r1.child_id = r2.child_id WHERE r1.parent_id = 6 AND r2.depth > r1.depth );
#1093 - You can't specify target table 'powiazania' for update in FROM clause
p.s. chyba należałoby poprawić faq tak aby sposób na przenoszenie gałęzi drzewa był zgodny z definicjami tabel podanymi w treści?
-- Aleksander 'A.L.E.C' Machniak http://alec.pl gg-2275252 LAN Management System Developer http://lms.alec.pl
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 27-05-2006 00:39
A.L.E.C wrote: > Paweł Matejski wrote: > > >>Odpowiedz sobie na jedno pytanie. Dlaczego nie masz kolumny id w >>tabeli powiązań. I odpowiednio wykorzystaj odpowiedź. > > > W faq nie ma tej kolumny, jest dopiero użyta w rozwiązaniu dotyczącym > przenoszenia gałęzi. Dodałem, ale nie pomogło.
Przyznam się bez bicia, że takiej motywacji nie wziąłem pod uwagę. :)
>>Dodaj jeszcze dlaczego nie działa. > > > DELETE FROM powiazania > WHERE id IN ( > SELECT r2.id > FROM powiazania r1 JOIN powiazania r2 ON r1.child_id = > r2.child_id > WHERE r1.parent_id = 6 AND r2.depth > r1.depth > ); > > #1093 - You can't specify target table 'powiazania' for update in FROM > clause
Skoro MySQL ma takie ograniczenia, musisz skorzystać z pomocy tabeli tymczasowej i rozbić powyższe na dwa zapytania.
> p.s. chyba należałoby poprawić faq tak aby sposób na przenoszenie gałęzi > drzewa był zgodny z definicjami tabel podanymi w treści?
Nic nie stoi na przeszkodzie. Znajdź adres osoby prowadzącej i wyślij do niej proponowane poprawki. :)
-- P.M.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Firebird - zmiana NULL na NOT NULL
Zmiana koloru tekstu i/lub =?ISO-8859-2?Q?t=B3a_w_pojedyncze?==?ISO-8859-2?Q?j_kom=F3rce_DBGrid?=
[pgsql] Zmiana schematu do =?ISO-8859-2?Q?kt=F3rego_nalezy_o?==?ISO-8859-2?Q?biekt=2E?=
[ORACLE] Zmiana adresu IP Hosta Oracle
klient oracle (zmiana domyslna klienta oracla)
[ORACLE] Oracle performance manager - zmiana jeżyka z PL na EN
=?ISO-8859-2?Q?[MSSQL]_Zmiana_collation_istniej=B1cego_serwera?=
[ms sql 2000] Replikacja - zmiana typu kolumny w tabeli ?
[trudne] Stan zapasu w kostce OLAP a zmiana przedzialow czasowych
hurtowa zmiana polskich liter w nazwach =?ISO-8859-2?Q?plik=F3w_?=
zanotowane.pldoc.pisz.plpdf.pisz.plfantazia.htw.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 |
|