Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie z relacjami
Forum PHP.pl > Forum > Bazy danych > MySQL
juna8001
Witam!
Mam tabelę 'games', w której jest pole indeksowane 'map', połączone relacją z polem 'id' w tabeli 'maps'.
Chcę sformułować zapytanie, które dla gry o danym id wyszukuje odpowiednią wartość z pola 'mapa' z tabeli 'maps'.
Próbowałem w ten sposób (dla id gry = 1):
  1. SELECT mapa FROM `maps` WHERE 'games.id'=1

Co robię źle?
thek
A skąd baza ma wiedzieć że games i maps są jakoś powiązane i w jaki sposób?
juna8001
ok, ogarnąłem, teraz działa:
  1. SELECT maps.mapa, maps.surowce
  2. FROM maps
  3. INNER JOIN games ON games.id =1
mmmmmmm
Zapewniam cię, że nie działa. A w każdym bądź razie nie działa PRAWIDŁOWO. Doczytaj jeszcze o JOINach.
juna8001
Zrobiłem to w ten sposób i jest chyba dobrze:
  1. SELECT maps.mapa, maps.surowce
  2. FROM maps INNER JOIN games ON maps.id = games.mapa
  3. WHERE (((games.Id)=1))

Ale znalazłem w phpmyadmin generator zapytań i on mi wygenerował to w ten sposób:
  1. SELECT `maps`.`mapa`, `maps`.`surowce`
  2. FROM maps, games
  3. WHERE (`games`.`id` =1)
mmmmmmm
Ty zrobiłeś to prawie dobrze (niepotrzebne nawiasy zaciemniające). Generator zapytań albo zrobił to źle,albo mu źle kazałeś zrobić.
Poczytaj jeszcze o aliasach...
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-2025 Invision Power Services, Inc.