ďťż
 
=?iso-8859-2?Q?Zagnie=BFd=BFone_zapytanie_=5BMySQL=5D=5BPHP=5 D?= ďťż
 
=?iso-8859-2?Q?Zagnie=BFd=BFone_zapytanie_=5BMySQL=5D=5BPHP=5 D?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?iso-8859-2?Q?Zagnie=BFd=BFone_zapytanie_=5BMySQL=5D=5BPHP=5 D?=



Tadeusz S. - 03-02-2006 09:52
=?iso-8859-2?Q?Zagnie=BFd=BFone_zapytanie_=5BMySQL=5D=5BPHP=5 D?=
 
Witam,
mam taką bazę danych, która ma dwie tablice:

Grupy:
ID,
Nazwa
Parent

Elementy
ID,
WGrupie,
Nazwa

Struktura jest przygotowana do tego, aby można
było robić grupy, podgrupy - i na każdym poziomie
przypisywać im elementy.
Teraz rodzi się problem sensownego odczytu z takiej
bazy.
Zrobiłem sobie funkcję (PHP), która czyta wszystkie
grupy rekurencyjnie. Na początek w pętli wyciąga
wszystkie grupy, które mają Parent=0 (główne),
potem te, które mają Parent=Któraś_Główna_Grupa
i tak dalej. Działa wyśmienicie! Tyle, że powoli.

Pomyślałem sobie, że szybciej będzie, jeśli wyciągnę
wszystkie grupy jednym zapytaniem a dopiero kod PHP
mi je ładnie ułoży. Będzie szybciej, na pewno,
z tym, że jest jedno ale:
Grupy można klikać, aby zobaczyć ich elementy. Grupy,
które nie mają elementów mają być "nieklikalne".
Czy da się wyciągnąć w jednym zapytaniu od razu
ilość elementów przypisanych do danej grupy?
Jakiś JOIN?

Ewentualnie może ktoś rozwiązywał taki problem
i ma jakąś receptę na prędkość?

Chodzi o MySQL (4.1 a więc zagnieżdżanie zapytań
dla SELECT jest) i PHP5, choć wersja PHP i sam
fakt, że to PHP pewnie nie ma znaczenia.

--
pozdrawiam,
Tadeusz S.





Tadeusz S. - 03-02-2006 09:52
=?iso-8859-2?Q?Re:_Zagnie=BFd=BFone_zapytanie_=5BMySQL=5D=5BP HP=5D?=
  Użytkownik "Tadeusz S." <no@mail.pl> napisał w wiadomości
news:43de2a1d$1@news.home.net.pl...

Może ja uściślę.

W wyniku SELECT FROM Grupy chciałbym otrzymać:
ID, Nazwa, Parent, Ilość_Elementów

--
pozdrawiam,
Tadeusz S.




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 03-02-2006 09:52

  Tadeusz S. wrote:
>
> Witam,
> mam taką bazę danych, która ma dwie tablice:
>
> Grupy:
> ID,
> Nazwa
> Parent

Zainteresuj się metodą 5 implementacji drzewa z FAQ.

> Elementy
> ID,
> WGrupie,
> Nazwa
>
> Pomyślałem sobie, że szybciej będzie, jeśli wyciągnę
> wszystkie grupy jednym zapytaniem a dopiero kod PHP
> mi je ładnie ułoży. Będzie szybciej, na pewno,
> z tym, że jest jedno ale:
> Grupy można klikać, aby zobaczyć ich elementy. Grupy,
> które nie mają elementów mają być "nieklikalne".
> Czy da się wyciągnąć w jednym zapytaniu od razu
> ilość elementów przypisanych do danej grupy?
> Jakiś JOIN?

LEFT JOIN :)
Do tego COUNT i GROUP BY.

--
P.M.




Tadeusz S. - 08-02-2006 15:38
=?iso-8859-2?Q?Re:_Zagnie=BFd=BFone_zapytanie_=5BMySQL=5D=5BP HP=5D?=
  Użytkownik "Paweł Matejski" <madej@spam.madej.pl.eu.org> napisał w
wiadomości news:drlgkr$kif$1@inews.gazeta.pl...
[...]
> LEFT JOIN :)
> Do tego COUNT i GROUP BY.

Dzięki, będe kombinował.

--
pozdrawiam,
Tadeusz S.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf mecze sie i mecze i nic - zapytanie czesciowe [sql][pgsql] zapytanie sql [mysql 4.0] SELECT t1.id, t1.foo FROM t1 oraz COUNT t2 w jednym zapytaniu. [MySQL] Zapytanie z pliku , wynik do pliku pytanie o zapytanie z having count = count z innej kolumny
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ponland.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com