Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyciagniecie danych z 3 tabel.
Forum PHP.pl > Forum > Bazy danych > MySQL
Diablos
Witam,

Oto moj problem:

mam 3 tabele:

uzytkownicy ( id, tytul, imie, nazwisko )
rezerwacje ( co, kiedy, userid )
teksty ( tytul, tresc, userid )

O co mi chodzi?
Chce wyciagnac z bazy danych uzytkownika, jego rezerwacje i jego teksty. Jeden uzytkownik moze miec jedna rezerwacje ale kilka tekstów.

Pokaze moje rozumowanie, to do czego doszedlem...
Pierwszy krok jest prosty wyciagam poprostu dane uzytkownika:
[sql]SELECT * FROM uzytkownicy[sql]

Drugi krok, wyciagniecie danych uzytkownika i rezerwacje
[sql]SELECT * FROM uzytkownicy u, rezerwacje r WHERE u.id = r.userid[sql]

Juz tutaj mam problem, bo nie wyciaga uzytkownikow ktorzy nie maja rezerwacji... Jak to poprawic?

Do tego musze dolozyc jednoczesne wyciagniecie tekstów. Kazdy uzytkownik moze miec kilka tekstow... na podobnej zasadzie jak wyciaganie z dwoch tabel uzytkownika i rezerwacji udalo mi sie to zrobic, ale wyciaga tylko jeden tekst zamiast kilku. Nie potrafie jednak zrobic wyciagania danych z dwoch tabel, z pierwszej jedna rzecz a z drugiej kilka. Da sie tak zrobic w ogole? tongue.gif Moze jakas podpowiedz? snitch.gif

Poza tym jest konflikt nazw pól. Tytul w tekstach i tytul w uzytkownikach. Jeden "zapisuje sie" przy wyciaganiu na drugi.. da sie to jakos wyeliminowac?
prond
Użyj OUTER JOIN, mniej więcej tak to by wyglądało :
  1. SELECT *
  2. FROM uzytkownicy u
  3. LEFT OUTER JOIN rezerwacje r
  4. ON (u.id = r.userid)
  5. LEFT OUTER JOIN teksty t
  6. ON (u.id = t.userid);
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.