Tworząc system powiadomień zamiast dodawać kolejną tabelę i powielać informacje postanowiłem wykorzystać istniejące tabele dodając kolumnę powiadomienia która przyjmuje wartość 0 (nie wyświetlone) lub 1 (wyświetlone).
login | cos1 | cos 2 | powiadomienia |
---|---|---|---|
loczek111 | abc | def | 0 |
login | cos3 | cos4 | powiadomienia |
---|---|---|---|
loczek111 | ghi | jkl | 0 |
loczek111 | mno | prs | 0 |
Zatrzymałem się na zapytaniu do bazy, trochę wstyd przyznać że mnie przerosło coś co na pozór wydaje się niczym skomplikowanym, otóż chciałbym wybierać z obu tabel dane WHERE login = "loczek111" AND powiadomienia = 0. Wykorzystując LEFT JOIN największy problem mam z tym że tabele się mieszają, tzn w wyniku dostaje te rekordy lecz w takiej formie
login | cos1 | cos 2 | cos3 | cos4 | powiadomienia
-------- | --------- | ------ | -------------
loczek111 | abc | def | ghi | jkl | 0
loczek111 | abc | def | mno | prs | 0
A chciałbym aby akurat w tych wierszach cos1 i cos2 było puste/null (ponieważ dane są z drugiej tabeli), a tam gdzie jest wiersz z pierwszej tabeli aby cos3 i cos4 było puste/null. Da się osiągnąć mój wymarzony efekt w jednym zapytaniu czy lepiej rozbić je na osobne? (w swoim projekcie mam 4 tabele do przeszukania)