Załóżmy że mamy zamówienia w bazie i statusy do zamówień i teraz chcę pobrać zamówienie które mają status AAA oraz BBB ale nie mają w historii statusu XXX.
Przykład:
SELECT * FROM zamowienia z JOIN statusy_historia s ON s.id_zamowienia = z.id_zamowienia AND s.nazwa = "AAA" OR s.nazwa = "BBB" # Ale nie chce zamówień ze statusem XXX
Jedno zamówienie ma wiele statusów (relacje jeden do wielu), ja chcę te zamówienia które mają jeden z dwóch i jednocześnie nie mają trzeciego.
Rozwiązałem to warunkiem EXISTS ale baza jest duża i działa to wolno.