Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Łączenie dwoch tabel, proste zapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
Emet
Mam trzy tabele :
Pirewsza:
USERS
id | id_typ | nazwa | data | woj | kraj (id - primary key)

Druga:
WOJ
id | nazwa (id - primary key)

Trzecia:
KRAJ
id | nazwa (id - primary key)

Tabela WOJ zawiera nazwy wojewodztw z przyporzadkowanym id, ten id jest odpowiednio uzyty w polu woj w tabeli USERS w zaleznosci z jakiego wojewodztwa pochodzi uzytkownik. Ta sama zasada jest z tabela KRAJ, poprostu nie wpisuje w tabeli USERS pelnych nazw wojewodztw i krajow tylko ich id.

Chce pobrac wszystkie pozycje z tabeli USERS o podanym id_typ, ale tak zeby w pola woj i kraj automatycznie byly przeniesione odpowiednie nazwy (zgodne z id ) z tabel WOJ i KRAJ .

Czy nalezaloby zastosowac tutaj kluczew obce, jesli tak to jak ? Czy moze wystarczy wykonac odpowiednie zapytanie, left join ?
spenalzo
  1. SELECT u.*, w.nazwa, k.nazwa FROM users u LEFT JOIN wojewodztwa w ON (u.woj=w.id) LEFT JOIN kraje k ON (u.kraj=k.id) WHERE id_typ='costam' GROUP BY u.id


  1. SELECT u.*, w.nazwa, k.nazwa FROM users u , wojewodztwa w , kraje k WHERE id_typ='costam' AND u.kraj=k.id AND u.woj=w.id GROUP BY u.id
Emet
Dzieki bardzo, w sumie to rzeczywiscie blad tkwil nie w samym zapytaniu, ktore jak sie okazalo bylo ok, ale w samym odebraniu tego zapytania w php. problem sprawialy te same nazwy pol w trzech tabelach - nazwa, przez co funkcja fetch_assoc() zwracala dziwne wyniki - po zmianie nazw pol w bazie wszystko oki.
szachor
sorki ze sie wtrace w wontek ale jestem zielony a tez potrzebuje wiedziec jak sobie myknac zapytanie pomiedzy kilkoma tabelami i nie kumam tej rozpiski sad.gif moglby ktos jasniej napisac jak sobie to mam smignac dzieki z gory sorki za problem smile.gif
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.