Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql] wyciaganie kategorii
FiDO
post 25.11.2003, 02:58:38
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Mam tabele z kategoriami, z nastepujacymi polami:
id | parent_id | name

Kateogria najwyzszego rzedu ma parent = 0, sa tylko 2 poziomy kategorii.
Nie wszystkie kaegorie maja swoje podkategorie.

Jak teraz pobrac wszystkie podkategorie (wraz ze swoimi kategoriami) i wszystkie kategorie nie majace podkategorii?

Samo wyciagniecie kategorii z podkategoriami to nie problem, zalatwia to zapytanie:
[sql:1:4b1fe39f37]SELECT g.id, CONCAT(g2.name, ' >> ',g.name) nazwa
FROM groups g
LEFT JOIN groups g2 ON ( g.parent_id = g2.id )
WHERE g2.name IS NOT NULL
ORDER BY g2.name, g.name[/sql:1:4b1fe39f37]

Ale czy da sie w jednym zapytaniu wyciagnac jeszcze kategorie bez podkategori?


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
uboottd
post 25.11.2003, 22:17:10
Post #2





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

Ostrzeżenie: (0%)
-----


tak samo tylko g2.name is null winksmiley.jpg
Go to the top of the page
+Quote Post
FiDO
post 25.11.2003, 22:33:28
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


niebardzo ;P
W takim wypadku zwraca wszystkie kategorie pierwszego stopnia, a ma zwrocic tylko te pierwszego stopnia, ktore nie maja swoich podkategorii.
Poki co rozbilem to na 2 query, ale chetnie bym poznal rozwiazanie teog w jednym, o ile takowe istnieje.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
uboottd
post 25.11.2003, 22:48:39
Post #4





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

Ostrzeżenie: (0%)
-----


A bo masz to zapytanie dziwacznie sformulowane.

[sql:1:4a3be7482a]
SELECT g.id, CONCAT(g.name, ' >> ',g2.name) nazwa
FROM groups g
LEFT JOIN groups g2 ON ( g2.parent_id = g.id )
WHERE g2.name IS NULL
ORDER BY g.name, g2.name
[/sql:1:4a3be7482a]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 20:48