Wpis z mikrobloga

Łączę sobie tabele w taki sposób:

LEFT JOIN table2 AS t2 ON
t1.table2id = t2.id
WHERE
t1.zepsutywykop = 'tak'
AND
t2.zepsutywykop = 'tak'

Jaki mam problem? Otóż chcę mieć wszystkie wartości z pierwszej tabeli, niezależnie od tego czy mają id drugiej tabeli czy nie. Ale jeśli do drugiej tabeli też dodam warunek, to wtedy niestety otrzymam tylko rekordy, które mają ustawione table2
id, jeśli jest null to nie weźmie ich pod uwagę.

Jak to zapisać, żeby pobrać wszystkie rekordy z tabeli 1 a z drugiej tylko wartości, które spełniają warunek?

#programowanie #sql
  • 4
gdy dajesz warunek do drugiej tabeli to twoje zapytanie działa jak inner join, bo oczekujesz, że dane się poprawnie połączą. W tym przypadku

LEFT JOIN table2 AS t2 ON
t1.table2id = t2.id
WHERE
t1.zepsutywykop = 'tak'
AND
(t2.zepsutywykop = 'tak' OR t2.zepsutywykop IS NULL)