Witam
Mam 3 tabele, z których chce wyciągnąć dane. Tabela pierwsza zawiera informacje o urządzeniu, tabela druga liste opcji urządzenia, tabela trzecia to przypisanie niektórych opcji do danego urządzenia.
tabela 1 device posiada pola:
iddevice - id urzadzenia
name - nazwa urzadzenia
tabela 2 option_list (lista opcji):
idoption
option_name
tabela 3 device_options (przypisanie opcji do urzadzenia)
iddevice_options
iddevice - id urzadzenia
idoption - id opcji
highlight - (przyjmuje wartosc 1 jesli opcja jest wyrozniona, 0 jesli nie jest)
Z tych 3 tabel chcialbym uzyskac dla konkretnego urzadzenia liste wszystkich opcji z tabeli option_list , a w kolumnie obok pole przyjmujace wartosc 1 jesli opcja jest przypisana do urzadzenia a wartosc 0 jesli nie jest.
Problem polega na tym ze jesli zrobie warunek WHERE iddevice = 'jakas liczba' to pobiera tylko opcje przypisane do urzadzenia a ma pobrac liste wszystkich opcji. :/
Czy ktos wie jak rozwiazac ten problem?
Rozwiązanie problemu okazało się banalne, zamiast robic warunek WHERE iddevice = 'x' wystarczy dac AND w klauzli left join:
"LEFT JOIN device ON device.iddevice = device_options.iddevice AND device.iddevice = 'x'"
Temat można zamknąć.