Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z JOIN
Skyline
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 25.07.2007

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


Witam

Zapewne jest to banalne zapytanie, ale nie udaje mi się go skonstruować.

Mam dwie tabele:

tabela opcje:

idopcje
nazwa

tabela opcje_lang:

idopcje_lang
idopcje
nazwa
lang

Pierwsza tabela zwiera liste nazw opcji w jezyku polskim, a druga tabela zawiera tłumaczenia tych opcji.

Jeśli w drugiej tabeli nie ma dla danego języka wpisanego żadnego tłumaczenia, lub są ale nie wszystkie chciałbym otrzymać taki wynik zapytania np dla sprawdzania tłumaczeń w języku angielskim:

nazwa_pl (z pierwszej tabeli) | nazwa_en (z drugiej tabeli) | lang
pamięć | memory | en
procesor | NULL |
karta graficzna | NULL |

Czyli z pierwszej tabeli wyswietla zawsze wszystkie dostepne opcje, a z drugiej tabeli ich tłumaczenia. Nie wiem właśnie jak zrobić takie zapytanie bo jak uzyje left join z warunkiem where lang = 'en' to z pierwszej tabeli pobiera tylko te opcje ktore posiadaja tlumaczenia w drugiej tabeli, natomiast nie pobiera tych, ktore nie maja odpowiednika w tabeli drugiej.

Pozdrawiam
Go to the top of the page
+Quote Post
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
jak uzyje left join z warunkiem where lang = 'en' to z pierwszej tabeli pobiera tylko te opcje ktore posiadaja tlumaczenia w drugiej tabeli
- niemożliwe, left join zawsze pobiera wszystkie rekordy z drugiej tabeli, natomiast jeśli chcesz pobrać rekordy spełniające określone warunki, musisz użyć PODZAPYTANIA, coś w stylu:

  1. ... LEFT JOIN (SELECT * FROM tabela2 WHERE lang='ang') tabela ON tabela.id=tabela2.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 Aktualny czas: 20.08.2025 - 18:51