łączenie wyników

0

Mam problem z ułożeniem zapytania mam tabele:

CREATE TABLE `tescik` (
  `id` int(11) NOT NULL auto_increment,
  `nazwa` varchar(30) default NULL,
  `opis` varchar(255) default NULL,
  `owner` int(11) default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
INSERT INTO `tescik` VALUES ('1', 'test 1', 'aaa', '0');
INSERT INTO `tescik` VALUES ('2', 'test 2', 'bbb', '0');
INSERT INTO `tescik` VALUES ('3', 'test 1.1', 'aaaaa', '1');
INSERT INTO `tescik` VALUES ('4', 'test 1.2', 'bbbbbbb', '1');
INSERT INTO `tescik` VALUES ('5', 'test 2.1', 'kkk', '2');
INSERT INTO `tescik` VALUES ('6', 'test 1.3', 'sjdgafkhgsh', '1');

i potrzebuję tak ułożyć zapytanie aby w wyniku dostać
test 1
test 1.1
test 1.2
test 1.3
test 2
test 2.1
kruca próbowałem to robić za pomocą unii ale nie udało mi się przekzać id ownera, podzapytania też jakoś szczególnie mi nie pomogły.

0

SELECT name FROM tescik ORDER BY name

wyświetli dokładnie to co napisałeś.

0

ale nazwy mogą być różne, nadałem takie nazwy tylko i wyłącznie dlatego aby sprawdzic poprawność wyników obecnie jestem nad zapytaniem:

SELECT t1.*, t2.* FROM tescik AS t1,
tescik AS t2 WHERE t1.owner =0 AND
t2.owner=t1.id order by t2.owner ASC

Częściowo mnie tylko usatysfakcjonowało :/

0

Zaraz, chcesz wyświetlić to jako drzewko (owner_id to id do rodzica, teraz zobaczyłem)?
W SQL nie da się wyświetlać struktur drzewiastych, bo nie ma rekurencji.
Użyj jakiegoś języka imperatywnego np. procedury składowanej.

0

Czyli o ile dobrze rozumuje to niestety, ale będe musiał się pobawić z czymś a'la getchilds(), a tego chciałem uniknąć. Kurde nie wiem czy jest to niewykonalne bo kiedyś gdzieś chyba coś takiego widziałem. To może ktoś by mi wytłumaczył jak to się odbywa z tym left_id i right_id, bo czytam dziesiąty raz artykuł na ten temat i jakoś nie łapie ogólnej koncepcji. Widziałem w kodach coyote, że tu jest tak właśnie to rozwiązane.

edit:: u mnie nie będzie co prawda głębokiego zagnieżdżania bo tylko o jeden w dół.

1 użytkowników online, w tym zalogowanych: 0, gości: 1