Witajcie,
Stanąłem przed pewnym problemem który zapewne da się jakoś rozwiązać tylko nie bardzo mam pomysł jak. Do tej pory miałem w swoim systemie jedną tabelę z której zaciągałem dane i po tych danych robiłem filtrowanie. Teraz po modyfikacji doszła mi druga tabela. Może pokażę jak to wygląda na przykładzie. Struktura tabel jest prosta. Tabela pierwsza którą już mam prezentuje się następująco:
ID DATA_1 DATA_1 DATA_3 ........
1
2
...
...
...
100
101
102
ID to klucz główny, kolumny DATA_x to kolumny w których znajdują się dane. Teraz doszła mi druga tabela która zawiera w sobie ID z pierwszej jako klucz obcy. Oczywiście ponieważ druga tabela doszła mi później, będzie miała mniejszy zbiór danych i prezentuje się następująco:
ID ID_TABLE_1 DATA_1 DATA_1 DATA_3 ........
1 100
2 101
3 102
Wszystkich danych które są poniżej ID 100 w pierwszej tabeli nie mam w drugiej. I teraz mam problem ponieważ gdy wykonuję zapytanie:
SELECT TOP 20 * FROM TABLE_1 T1
LEFT JOIN TABLE_2 T2 ON T1.ID = T2.ID_TABLE_1
WHERE
T2.DATA_1 != 'wartość' AND T2.DATA_2 != 'wartość'
zwracane są wyłącznie dane które są częścią wspólną obu tabel natomiast te które są tylko w tabeli pierwszej a nie mają połączenia z drugą, są po prostu pomijane. Jeżeli usunę klauzulę WHERE jest ok, jak tylko dodam tą klauzulę już ok nie jest. Szczerze to nie mam pomysłu jak to ugryźć. Pomożecie?