Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sq]Obiekt matka a sortowanie
Forum PHP.pl > Forum > Przedszkole
Bojakki
Mam tabele z rekordami, w ktorej niektore rekordy sa jakby matkami innych. Przyklad:

rodzaj to 1=corka, 2=matka, w kolumnie matka jest id obiektu, ktory dla tego obiektu jest matka.
[id][rodzaj][nazwa][matka]
[1][1][Zosia][2]
[2][2][Rozia][]
[3][1][Olga][2]
[4][1][Renia][5]
[5][2][Bronka][]
I teraz chce wyciagnac te wszystkie rekordy tylko w taki sposob by najpierw wypisane byly matki i pod nimi corki, czyli:
Cytat
Rozia
- Zosia
- Olga
Bronka
- Renia

Da sie tak zrobic, a jezeli tak to czy to jest bardzo obciazajace zapytanie? Bo tych rekordow w tebeli bedzie minimum 100 tys

Z gory dziekuje za pomoc
chemik1982
Powinno ci się przydać: (było już na forum).

http://www.sitepoint.com/article/hierarchi...data-database/2
http://dev.mysql.com/tech-resources/articl...hical-data.html
Bojakki
Dzieki za linka (http://dev.mysql.com/tech-resources/articles/hierarchical-data.html), znalazlem pod nim cos podobnego czego szukam, ale mam pytanie

Mam te tabele co w przykldzie, tyle, ze uproszczone do 1 poziomu:
+-------------+----------------------+--------+
| category_id | name | parent |
+-------------+----------------------+--------+
| 1 | ELECTRONICS | NULL |
| 2 | TELEVISIONS | 1 |
| 6 | PORTABLE ELECTRONICS | 1 |
+-------------+----------------------+--------+

Po tym zapytaiu:
  1. SELECT t1.name AS lev1, t2.name AS lev2
  2. FROM category AS t1
  3. LEFT JOIN category AS t2 ON t2.parent = t1.category_id
  4. WHERE t1.name = 'ELECTRONICS';

Mam:
+-------------+----------------------+
| lev1 | lev2 |
+-------------+----------------------+
| ELECTRONICS | TELEVISIONS
| ELECTRONICS | PORTABLE ELECTRONICS
+-------------+----------------------+
I jak to wyswielic by wygladalo tak:
ELECTRONICS
- TELEVISIONS
- PORTABLE ELECTRONICS

czyli by 'ELECTRONICS' bylo tylko raz przed wszytskimi obiektami dla ktorych jest matka.

Z gory dziekuje za pomoc!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.