tabela_1a (W ORYGINALE NAZYWA SIĘ tp):
id | pid | name
---------------
1 | 0 | nazwa
tabela_1b (W ORYGINALE NAZYWA SIĘ ptk):
id | pid | name
---------------
1 | 0 | nazwa
(muszą być 2 tabeli o identycznej strukturze, bo jedna tabela zawiera dane jednej firmy, a druga drugiej firmy, o półączeniu tych tabel nie ma mowy, bo w takiej formie je zastałem)
tabela 2:
id | id_od* | skad | dokad | id_do
----------------------------------------------
1 | 1 | tabela_1a| info** | info**
* klucz obcy tabeli tabela_1a lub tabela_1b
** - pobieram z $_GET["zmienna"]
Tabela 2 zawiera dane:
id - wiadomo
id_od - wskazuje na id elementu z tabeli tabela_1a LUB tabela_1b
skad - wskazuje na tabelę tabela_1a LUB tabela_1b
dokad - to takie tam mało ważne info
id_do - na podstawie tego chcę oprzeć całe zapytanie, zmienną tą pobieram z $_GET["zmienna"]
Tabela 2 gromadzi tzw raportowania, wiele jednostek z tp może raportować do wielu jednostek z ptk i na odwrót, więc wskazuje najpierw ID jednostki raportującej, później jest nazwa firmy (tp lub ptk) skąd idzie raport, później jest wskazanie firmy do której idzie raport (tp lub ptk) a później wskazanie ID jednostki do której idzie raport.
i teraz co chcę zrobić:
chcę pobrać id i name z tabeli albo tabela_1a, albo z tabela_1b w zależności od tego co jest w polu skad tabeli tabela 2
może być taka sytuacja, że dane id i name są pobierane z obu pierwszych tabel, a może być, że tylko z jednej z nich. Jak takie zapytanie wykonać?
Próbowałem tak:
SELECT t.name, upper(r.skad) AS skadDuze, r.skad AS skadMale
FROM (SELECT skad FROM raporty WHERE id_do = 62) AS tabela t, raporty r
WHERE r.dokad = 'tp'
AND r.id_do = 62
AND r.id = t.id
AND UNIX_TIMESTAMP( t.start ) <= UNIX_TIMESTAMP( DATE( NOW( ) ) )
AND UNIX_TIMESTAMP( t.stop ) >= UNIX_TIMESTAMP( DATE( NOW( ) ) )
czyli wykorzystując podzapytanie, które mi sprawdza wartosc pola skad i na podstawie tego generuje nazwe tabeli do dalszych zapytan, ale to nie działa
