Dell wrote:ir uzklausa atrodytu tuomet mazdaug taip? SELECT * FROM marsrutai WHERE (stot1=S3 AND stot2=S6) AND (stot1.nr<stot2.nr)
ar teisingai. ar kaip nors protingiau galima padarti lentel ?
Na, kažkas panašaus, tik naudoti ne stoteles o marštutus, kitas dalykas kad turėdamas tokią lentelės struktūrą turėsi tik apibrėžtą stotelių skaičių kiekvienam marštutui. mano supratimu, reikėtų daryti keletą lentelių: maršrutai, stotelės ir trečia lentelė - jų sąjunga (many to many) maršrutai-stotelės.
t.y. marsrutai
ID| Maršrutas| kita info apie mašrtutą ir t.t.
1 | A11 | žemagrindis
2 | B7| greitasis
3 | C3| paprastas
stotelės
ID | Pavadinimas | Kita info jei reikia
1 | Autobusų parkas |
2 | Klevų |
3 | beržų |
4 | ąžuolų |
5 | briedžių |
ir po to jas jungiančią lentelę `marsrutu_stoteles`:
ID| Marštuto ID| stotelės ID| stotelės numeris maršrute
1| 1 | 1 | 1
2| 1 | 2 |2
3| 1 | 5 |3
.....
ir t.t.
norėdamas išrinkti mašrutą kuris veža iš klevų į briedžių stotelę turėtum rinkti iš šios trečiosios lentelės darydamas join su pirmosiomis dviem:
select `marsrutai`.`marsrutas`, `stoteles`.`stotele` as `pradine stotele`, `stoteles`.`stotele` as `galine stotele` from `marsrutu_stoteles` left join `marsrutai` on `marstutu_stoteles`.`marsrtuto id`=`marsrutai`.`id` group by `marsruto_id` having `stoteles_id`=2 and `stoteles_id`=5
tik kol kas nežinau kaip šioje užklausoje įjungti "where `stotele2` `stotelės numeris maršrute`> `stotelė5` `stoteles numeris maršrute`. Vienas variantas - daryti tai jau pačioje programoje, apdorojant Mysql rezultatą. bet kažkaip man tai atrodo greičiau kaip hack'as, negu teisingas kelias. Tavo vietoj pamėginčiau paieškoti daugiau info MySLQ manuale - gal būtų būdas priversti tai padaryti patį Mysql serverį :)