Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Najmniejsza liczba zapytan
Forum PHP.pl > Forum > Bazy danych > MySQL
siorbi
Mam tabele z wojewodztwami i miastami. Chcialbym wyswietlic wojewodztwa posortowane nazwami i do kazdego z nich miasta takze posortowane nazwami. Robilem to w petli, czyli 17 zapytan na Polskie realia. Czy jestem w stanie to zrobic za pomoca dwoch zapytan? Nie wiem jak sie zabrac za to:/

Tabela ma jedynie pola: ppid, pid, nazwa
slepiec
a nie możesz tych dwóch tabel zgrać do php i w nim połączyć ?
ewent. stworzyć jedną tabelę samych miast i dodać do niej id województwa? <-to może być jedno zapytanie.
phpion
Powinieneś rozbić to na 2 tabele:
wojewodztwo [id, nazwa]
miasto [id, id_wojewodztwa, nazwa]
Masz wtedy tabele znormalizowane i możesz zrobić takie zapytanie:
  1. SELECT m.nazwa, w.nazwa FROM miasto m LEFT JOIN wojewodztwo w ON m.id_wojewodztwa=w.id ORDER BY w.nazwa ASC, m.nazwa ASC

Nie sprawdzałem ale powinno działać.
JaRoPHP
Cytat(siorbi @ 13.09.2007, 10:39:52 ) *
Tabela ma jedynie pola: ppid, pid, nazwa

Jeżeli są one typu: id, parent_id, nazwa, a tabela wygląda mniej więcej tak:
-------------------------------
id | parent_id | nazwa
-------------------------------
1 | 0 | malopolskie
2 | 0 | opolskie
3 | 1 | Krakow
4 | 1 | Nowy Sacz
5 | 2 | Opole
-------------------------------
to możesz zastosować zapytanie (nie sprawdzane!):
  1. SELECT woj.nazwa, miasto.nazwa
  2. FROM tabela AS woj
  3. JOIN tabela AS miasto ON (miasto.parent_id = woj.id)
  4. WHERE woj.parent_id = 0
  5. ORDER BY woj.nazwa ASC, miasto.nazwa ASC
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.