Mam bazę, która wygląda w uproszczeniu następujący sposób:
tabela A:
IDa
tabela B:
IDb
a
tabela C:
IDc
a
b
Chodzi mi o wyciągnięcie tych danych z tabeli B, które spełniają następujące warunki (x - zadana wartosc):
- B.a=x
- jeśli istnieje chociaż jeden rekord taki w tabeli C, który spełnia warunek C.a=x, to do wyniku dodać rekord z tabeli B spełniający warunek IDb=C.b
na rozwiązanie problemu wpadłem podczas pisania postu, także od razu zamieszczę rozwiązanie (może komuś się przyda):
SELECT DISTINCT
C.b AS IDb,
B.a AS a
FROM
(
C
LEFT OUTER JOIN
(
B
LEFT OUTER JOIN
A
ON
B.a=A.IDa
)
ON C.b=B.IDb
)
LEFT OUTER JOIN
A as xA
ON C.a=xA.IDa
WHERE
B.a=x
OR C.a=x
mogłem coś namieszać, bo zmieniałem oryginalne zapytanie