Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wielokrotny join w zapytaniu
115750
post 17.10.2012, 13:13:53
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 7.06.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Mam 4 tabele:
- główna: osoby(id, miasto, stanowisko, status)
- słownikowe: miasta, stanowiska i statusy

W tabeli miasto może nie być wpisu odpowiadającemu kluczowi w tabeli osoby w polu miasto.
Zatem, żeby wyświetlić wszystkie osoby, które nie mają odpowiadającego miasta chciałbym tu zastosować left join.

Mam więc na początek zapytanie w stylu:
  1. SELECT T1.*, T2.miasto FROM `osoby` AS T1 LEFT JOIN miasta AS T2 ON T1.miasto = T2.id


Problem pojawia się, gdy chcę jeszcze dołożyć powiązanie z tabelami stanowiska i statusy na podobnej zasadzie jak miasta, z tą różnicą, że w tych dwóch tabelach zawsze będzie odpowiedni rekord.

Próbowałem:
  1. SELECT T1.*, T2.miasto, T3.stanowisko FROM `osoby` AS T1 LEFT JOIN miasta AS T2, stanowiska AS T3
  2. ON T1.miasto = T2.id AND T1.stanowisko = T3.id

i podobne kombinacje (np. tabela T3 przed joinem) ale nic nie działa.

Macie pomysł jak to ugryźć?


Ok, już sobie poradziłem:

  1. SELECT T1.*, T2.miasto, T3.stanowisko, T4.STATUS FROM `osoby` AS T1
  2. LEFT JOIN miasta AS T2 ON T1.miasto = T2.id
  3. LEFT JOIN stanowiska AS T3 ON T1.stanowisko = T3.id
  4. LEFT JOIN statusy AS T4 ON T1.STATUS = T4.id
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 04:29