Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z JOIN
Forum PHP.pl > Forum > Bazy danych > MySQL
Skyline
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
Pilsener
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 ...
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.