![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 16:11 |