Autor | Zpráva | ||
---|---|---|---|
peta Profil |
#1 · Zasláno: 2. 12. 2008, 08:57:31 · Upravil/a: peta
S SQL propojenim tabulek mam vzdy problem :)
Potrebuji propojit 3 tabulky a ziskat ze vsech udaje. SQL dotaz sestavuji zhruba takto, ale nevim, zda to bude ok SELECT a.id, a.username, a.firstname, a.lastname, c.category,c.fullname,c.shortname,c.idnumber FROM `mdl_role_assignments` b LEFT JOIN `mdl_user` a ON a.id=b.userid RIGHT JOIN `mdl_course` c ON c.id=b.contextid WHERE b.role<5 WHERE viditelny v tabulce B je prirazeni do kurzu role ucitel, student, admin... v tabulce A mam informace o uzivatelich v tabulce C mam informace o kurzu Samozrejme potrebuji zobrazit seznam vsech kurzu z C, k nim seznam uzivatelu podle A a vytridene podle roli v B. Delam to zatim spravne? kdyztak mi muzete pomoci symbolicky. Navic si vubec nejsem jisty, zda b.contextid odpovida ID kurzu. Jestli ne, tak to bude jeste dost problem, mozna pres 4tou tabulku :) --- Tak to bude bolestive, zas celej den budu plodit 1 sql dotaz. Zjistil jsem, ze musim pres 4 tabulky. mdl_context d d.id=b.contextid d.instanceid === courseid |
||
Leo Profil |
#2 · Zasláno: 2. 12. 2008, 10:03:08
Tezko radit, kdyz nezname vztahy mezi tabulkami a co je to za data, a jak to vypada ani vy... Leo
|
||
peta Profil |
#3 · Zasláno: 2. 12. 2008, 13:13:58
:) Uz nic, zkusil jsem kolegy, ti maji zname a znami pouzivaji
* MySQL front <- toto * Microsoft SQL Server Management Studio Express * Hibernate A v tom jsem poskladal dotaz (sice group by nerad, ale pro tento ucel staci) SELECT `mdl_course`.`visible`,`mdl_course`.`id`, `mdl_course`.`idnumber`, `mdl_course`.`category`, `mdl_course`.`shortname`, `mdl_course`.`fullname`, `mdl_role_assignments`.`roleid`, `mdl_user`.`username`, `mdl_user`.`lastname`, `mdl_user`.`firstname`, `mdl_role_assignments`.`userid`, `mdl_user`.`id`, `mdl_context`.`instanceid`, `mdl_context`.`id`, `mdl_role_assignments`.`contextid` FROM `mdl_context`, `mdl_course`, `mdl_role_assignments`, `mdl_user` WHERE `mdl_user`.`id` = `mdl_role_assignments`.`userid` AND `mdl_course`.`id` = `mdl_context`.`instanceid` AND `mdl_context`.`id` = `mdl_role_assignments`.`contextid` AND `mdl_role_assignments`.`roleid`<5 GROUP BY `mdl_user`.`id`, `mdl_role_assignments`.`userid`, `mdl_course`.`id`, `mdl_context`.`instanceid`, `mdl_context`.`id`, `mdl_role_assignments`.`contextid` ORDER BY `mdl_course`.`visible`, `mdl_course`.`category`, `mdl_course`.`fullname`, `mdl_user`.`username` Leo Vztahy mezi tabulkami, propojeni, jsem napsal. " a.id=b.userid c.id=b.contextid v tabulce B je prirazeni do kurzu role ucitel, student, admin... v tabulce A mam informace o uzivatelich v tabulce C mam informace o kurzu Samozrejme potrebuji zobrazit seznam vsech kurzu z C, k nim seznam uzivatelu podle A a vytridene podle roli v B. " Vse ostatni je v tom nacrtku SQL dotazu. Ale uz jsem to poresil. Ja tento typ propojeni tabulek moc nemam rad, vetsinou vzdy zapomenu, jak se to sklada dokupy, protoze to nepouzivam kazdy den. Jinak je to program Moodle CMS, pro elearning. Pokud by te to zajimalo bliz. Vcelku pracuje dobre, dilci casti jsou dost odflaknute :) Treba pokus vypsat kurzy s kejich autory, k tomu zkratky a nejake dalsi veci to v sobe nema a nektere veci je treba delat pres 4 odkazy, 4 skoro stejne tabulky... |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0