Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Oracle SQL - kde je chybka v dotaze

Čau.

Prosím Warm_Spidera nebo někoho podobného o pomoc s podmínkou.
Mám poměrně jednoduché SQL:

SELECT * FROM opravneni left join uzivatele

on opravneni.uzivatel_id = uzivatele.id

order by uzivatel_id, aplikace
Výše uvedené SQL propojuje 2 tabulky.
A výstupem jsou taková oprávnění, která má uživatel přiřazena.
No ale pozor, nejedná se o všechna možná oprávnění.
A já chci dotaz, který zobrazí i ta práva, která uživatel nemá (třetí tab. prava).

Na to mám tenhle dotaz:

SELECT uzivatele.id user_id, prava.create_date , uzivatele.disabled blokovan ,uzivatele.username, uzivatele.full_name, prava.popis mujpopisek, prava.aplikace , case when not opravneni.Uzivatel_id is null then '1' else '0' end maopravneni, TO_CHAR(CURRENT_DATE, 'DD-MON-YYYY HH:MI') Vypis_stavu_k

FROM prava

join uzivatele on 1=1

left outer join opravneni ON uzivatele.id = opravneni.Uzivatel_id and opravneni.pravo_id = prava.id order by  uzivatele.id , prava.aplikace, maopravneni, popis
Ale tento zápis má dvě podstatné vady:
1) oprávnění jsou v čase přidávána a měněna.
Tzn. vytáhnout chci jen to, co přibylo naposledy (v tab. oprávnění, sloupec Create_date)

2) Je tam nějaká drobná chyba
Vlivem této chyby se u jediného oprávnění rozchází výsledek se skutečností.
Konkrétně jde o právo, které nemá uživatel přiřazeno(není v tabulce opravneni), ale
ve výsledku je vedeno jako, že ho má :-(

Čím to ještě může být?

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny