Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: LEFT JOIN - pomocy - rozwiązane
Forum PHP.pl > Forum > Bazy danych > MySQL
pc5
Witam!

Trafiłem na 'ścianę' w moim projekcie, którą chce przebić smile.gif

Mamy 2 tabele. Pierwsza FIRMY druga BRANZE. W tabeli FIRMY zapisuje 2 branze w 2 kolumnach nazwanych branza_1 i branza_2. W tabeli BRANZE przetrzymywane sa nazwy branz i ich id.

Problem - jak pobrać w jednym zapytaniu dane firmy i połączyć id branzy_1 i branzy_2 z ich nazwami z tabeli BRANZY?

Dla 1 polaczenia oczywiscie LEFT JOIN, ale jak pobrac druga nazwę? Pierwszą, nie ma problemu. Ale drugą?

Struktura tabeli jest taka :

FIRMY
nazwa | branza_1 | branza_2
Elkom | 1 | 4
Robomax | 2 | 5
Elmar | 1 | 4

BRANZE
id | nazwa
1 | Budownictwo
2 | Robotyka
3 | Usługi
4 | Materiały budowlane
5 | Części mechaniczne

Może błądzę i tutaj nie przez LEFT JOIN takie sprawy się załatwia?

Pozdrawiam
nospor
Cytat
Pierwszą, nie ma problemu. Ale drugą
analogicznie jak z pierwszą . RObisz drugiego left join na te samą tabele co za pierwszym razem. Pamietaj tylko by przy pierwszym i przy drugim left join dac alias dla tabeli
pc5
Cytat(nospor @ 24.07.2009, 09:01:14 ) *
analogicznie jak z pierwszą . RObisz drugiego left join na te samą tabele co za pierwszym razem. Pamietaj tylko by przy pierwszym i przy drugim left join dac alias dla tabeli


Super, działa smile.gif Dziękuję za pomoc.

Jakby ktoś szukał rozwiązania to wklejam przykładowe zapytanie dla problemu opisanego powyżej. Nie jest to za piękny kod, ale tutaj nie chodzi o kosmetykę.

  1. SELECT
  2. f.nazwa,
  3. f.branza_1 AS branza_1_id,
  4. f.branza_2 AS branza_2_id,
  5. b.nazwa AS branza_1,
  6. b2.nazwa AS branza_2
  7.  
  8. FROM firmy f
  9.  
  10. LEFT JOIN branze b ON f.branza_1 = b.id
  11. LEFT JOIN branze b2 ON f.branza_2 = b2.id


Pozdrawiam.
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.