Riesim situaciu, kedy mam tabulu s id-ckami, kde su dva typy obsahu, a potrebujem jeden z tych typov filtrovat joinom, ale ponechat ten druhy mez zmeny.
Povedzme, ze mam jeden typ stranka a druhy typ clanok, ktory ma kategorie.
Inak povedane, mam tabulku content, kde mam 1:clanok, 2:stranka, 3:clanok, 4:stranka, 5:clanok a potrebujem spravit join na druhu tabulku categories a odfiltrovat clanky, ktore nie su v zozname dodanych kategorii, ale s tym, ze stranky sa zachovaju, kedze sa ich to netyka.
Jednoduche riesenie je spravit right join na categories tabulku, co mi odfiltruje clanky. Lenze right join tym padom zahodi stranky z content tabulky, kvoli absencii zhody na id-cku v tabulke categories. Ak spravim zase left join, tak viem spravit napriklad (category is null or in(..)), cim si odfiltrujem clanky, ktore nie su v zozname katagorii ktore chcem, a ze stranky budu mat NULL, kedze v tej joinutej categories tabulke vobec nie su.
Problem vsak je, ak clanok nema nastavenu ziadnu kategoriu, tak sa vyhodnoti ako is null a ostane v zozname.
Normalne by som mal dve samostatne tabulky a logiku oddelil, lenze tak by som nevedel strankovat obsah ako jeden celok. A nejak neviem ako to vyriesit teraz.
Napada ma asi pouzit nejaku sub-query alebo self join, ale nie som si uplne isty ktore riesenie je spravne.