[ biske86 @ 08.07.2010. 14:35 ] @
Imam sledeću proceduru: Code: -- -------------------------------------------------------------------------------- -- Routine DDL -- -------------------------------------------------------------------------------- DELIMITER $$ CREATE DEFINER=`root`@`%` PROCEDURE `SP_GET_USER_PERMISSION`(IN username varchar(15), IN meniid int) BEGIN set names utf8; select m.naziv, gm.insertpermissiondane, gm.updatepermissiondane, gm.deletepermissiondane from (((((korisnik k inner join grupa_korisnika gk on k.korisnikid=gk.korisnikid) left join grupa g on g.grupaid=gk.grupaid) inner join grupa_meni gm on gm.grupaid=g.grupaid) inner join meni m on m.meniid=gm.meniid)) where ((k.username=`username`) and (gm.meniid=meniid)); END Pogled na model je sledeći: Ono što dobijam kao rezultat izvršavanja procedure je: E sada problem je sledeći. Ja ovde dobijam 2 reda a treba mi jedan. U jednom redu imam za delete permission 1 (što znači da ima pravo da briše rekorde u određenom meniju), a u drugom imam delete permission 2 (što znači da dati korisnik nema pravo da briše rekorde u određenom meniju). Imam dva reda zato što sam ovog korisnika stavio u dve različite grupe kojima se prava pristupa preklapaju. Znači meni treba da kada imam 1 i 2 recimo za delete permission, dobijem u izlazu 1 (korisnik je učlanjen u jednu grupu koja nema pravo pristupa, ali je uključen i u drugu grupu koja ima pravo pristupa tako da mi treba podatak da taj korisnik ima pravo pristupa). Baza je mysql 5.1. |