![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 27.10.2006 Ostrzeżenie: (10%) ![]() ![]() |
mam zapytanie:
Powyższe zapytanie wyszukuje kursy na których jest zarówno przystanek początkowy jak i końcowy ale niestety nie wiem w jaki sposób wykluczyć kursy, które nie spełniają warunku: Kod numer przyst początkowego < numeru przyskanku końcowego (czyli oczywiście przystanek pocz. musi być przed przystankiem końcowym na danym kursie) Powyższe zapytanie zredukowałem do jednej tabeli aby nie zaciemniać. Tabela: "przystanek kursu' - id_kursu, id_przystasnku, numer '$pocz' i '$kon' to oczywiście odwołania do zmiennych php zawierające konkretne dane nie wiem czy dopisanie do zapytania wewnętrznego czegoś takiego ma sens:
ma ktoś jakiś pomysł ? Ten post edytował peksiarz 7.12.2006, 15:39:10 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
A spróbuj tak:
Kod SELECT pk1.id_kursu, pk1.id_przystanku, pk1.numer FROM przystanek_kursu pk1 (..) WHERE (..)pk1.id_przystanku = '$pocz' AND pk1.id_kursu IN (SELECT pk1.id_kursu FROM przystanek_kursu pk2 WHERE pk2.id_przystanku = '$kon' ) and pk1.numer < pk2.numer Czy to ma sens? Nie wiem bo nic nie napisałeś co to są za numery Jeżeli są to kolejne przystanki i autobus jedzie w jedną stronę to ma sens, w przeciwnym nie wiem -------------------- |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 27.10.2006 Ostrzeżenie: (10%) ![]() ![]() |
Cytat Czy to ma sens? Nie wiem bo nic nie napisałeś co to są za numery Jeżeli są to kolejne przystanki i autobus jedzie w jedną stronę to ma sens, w przeciwnym nie wiem numery - sa to numery identyfikacyjne przystaknów na danym kursie a jeśli chodzi o kurs to w moim będzie tak, że gdy autobus jedzie z powrotem to już będzie inny kurs -będzie miał osobne id_kursu (chodzi o to, że często autobusy z powrotem jeżdzą troche inną trasą) pk1 i pk2 są to oczywiście skrótowe nazwy które utworzyłem do tabeli przystanek kursu. Myśle że końcówka dla tych założeń jest nielogiczna.. Kod (..) AND pk1.numer < pk2.numer niemożliwe jest aby w jednym cyklu zapytania SELECT porównywać numery różnych przystanków - no i to jest zasadniczy problem ![]() Ten post edytował peksiarz 7.12.2006, 17:59:18 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
Jak chcesz je posortować malejąco lub rosnąco to zastosuj ORDER BY cos tam
Nie napisałeś dokładnie co chcesz uzyskać jako wynik końcowy więc strzelam -------------------- |
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 27.10.2006 Ostrzeżenie: (10%) ![]() ![]() |
nie o to mi chodzi...
wyjaśnie to inaczej: Chce wyszukać dwa różne przystanki (czyli 2 dane z jednego argumentu) Takie zapytanie jest mi potrzebne do programu, w którym użytkownik będzie podawał przystanek początkowy i końcowy a zapytanie wyszuka z bazy kursy na których są te przystanki w odp kolejności. Jeśli coś jeszcze nie jest jasne to prosze pytać. Ten post edytował peksiarz 7.12.2006, 20:38:39 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
A coś takiego:
select t1.pkt1, t2.pkt2 from tabela t1 join tabela t2 on t1.linia=t2.linia where t1.pkt1<t2.pkt2 and t1.pkt1='$pocz' and t2.pkt2='$konc' -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 00:05 |