Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
26.02.2011 22:24:03
rekursioon MYSQLis, PHP |
|
|
kas ainult mysqlis rekutsioon kah on võimalik?
mul on table, kus veerud id ja parent_id
tahaks kõik teatud id alla kuuluvad järglased välja võtta. samuti oleks vaja teises kohas nad kokku lugeda. saan ma seda mysql päringuga teha või pean ikka php abiks võtma?
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
atari_
HV kasutaja

liitunud: 09.10.2004
|
27.02.2011 07:26:06
|
|
|
järglaste arvu peaks saama nii:
select count(id) from tabel where parent_id = 'mingi_id'
_________________
 |
|
Kommentaarid: 94 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
80 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
27.02.2011 11:02:45
|
|
|
See annab vahetud järglased, kuid ei loe kokku kogu alampuu lehti.
MySQL-s rekursiivseid funktsioone ei ole minu teada (nagu PostgreSQL WITH RECURSIVE ja connectby).
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
andresv
HV kasutaja
liitunud: 06.12.2004
|
28.02.2011 12:52:54
|
|
|
kusjuures ma kusagil nägin päringut, mis tagastas kogu puu struktuuri õiges järjekorras. Nii, et php-s oli ainult üks for/while tsükkel.
Otsin, äkki leian, selle algoritmi jaoks oli ka mingi oma nimetus.
Edit, leidsingi ülesse
http://articles.sitepoint.com/article/hierarchical-data-database/
Tegu pole küll rekursiooniga aga tulemus peaks olema võrdväärne
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
28.02.2011 12:59:08
|
|
|
andresv, see pole ju see mis ma küsisin
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
karu
HV kasutaja
liitunud: 08.08.2002
|
28.02.2011 13:11:16
|
|
|
kui järglaste arv on limiteeritud, siis saad 'left join' kasutaded kõik tasemed kätte ühe päringuga.
kui järglasi on piiramata, siis tõmba parent/child id'd php'sse sorteeri ära ja tõmba id'de järgi juba terved read. kui php sorteerimine aeglaseks jääb, siis rekursiivsed päringud lasevad MySQL ammugi õhtale.
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
28.02.2011 13:39:27
|
|
|
mul pole probleem teha rekursiooni, lihtsalt huvitas, kas rekursiivne mysql statement on võimalik.
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
serk
HV kasutaja
liitunud: 24.05.2003
|
01.03.2011 22:15:14
Re: rekursioon MYSQLis, PHP |
|
|
keevitaja kirjutas: |
kas ainult mysqlis rekutsioon kah on võimalik?
mul on table, kus veerud id ja parent_id
tahaks kõik teatud id alla kuuluvad järglased välja võtta. samuti oleks vaja teises kohas nad kokku lugeda. saan ma seda mysql päringuga teha või pean ikka php abiks võtma? |
Relatsioonilised andmebaasid ei ole mõeldud hierarhilise data hoidmiseks ja punkt.
aga vastus sinu küsimusele:
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
|
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
okpoiss
HV kasutaja

liitunud: 07.11.2001
|
03.03.2011 12:52:03
|
|
|
Selleks, et saada kätte id'd ja iga id laste arvu kasuta left joini
select t1.id, count(t2.parent_id)
from tabel t1
left join tabel t2 ON t2.parent_id = t1.id
group by t1.id
Vajadusel saad lisada WHERE lause, et anda soovitud ID'd ette.
|
|
Kommentaarid: 6 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
6 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
03.03.2011 12:58:54
|
|
|
mulle tundub, et see annab siiski ainult otsesed järeltulijad, mitte aga lõpuni välja kogu puud
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
03.03.2011 22:03:21
|
|
|
keevitaja kirjutas: |
mulle tundub, et see annab siiski ainult otsesed järeltulijad, mitte aga lõpuni välja kogu puud |
nii ta on.
Aga vaata antu sulle alles ju link
Nested Set Model on oma kogemustel päris asjalik asi.
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
nemu
HV vaatleja

liitunud: 22.01.2002
|
04.03.2011 01:19:01
|
|
|
Nö. täispuuna ( Ülem | Alam | Kaugus ) hoidmine on vahel sobiv.
Mugav pärida ja kindlasti kiirem kui rekursioon ja connect by.
|
|
Kommentaarid: 12 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
11 |
|
tagasi üles |
|
 |
|