|
Не могу найти нигде примера, прошу помощи.
|
|||
---|---|---|---|
#18+
Здравствуйте! Пытаюсь сделать запрос к БД MOODLE. В базе есть 2 таблицы: 1) Пользователи mdl_user. 2) Таблица дополнительных полей пользователей mdl_user_info_data. (MOODLE позволяет расширять сведения о пользователях через таблицу дополнительных полей). Сколько дополнительных полей - столько и строк в таблице mdl_user_info_data на одного пользователя. В моем случае 3 дополнительных поля (пол, дата рождения, образование). Несмотря на разный смысл всех допполей - они символьные. Записи в таблице пользователей - уникальны. Основные поля таблицы mdl_user: ID bigint(10) USERNAME varchar(100) password varchar(255) firstname varchar(100) lastname varchar(100) и т.д. Основные поля таблицы mdl_user_info_data: id bigint(10) userid bigint(10) fieldid bigint(10) data longtext dataformat tinyint(2) Связь: mdl_user.id = mdl_user_info_data.userid fieldid - идентификатор назначения поля. В моем случае это: 2, 3, 4. Т.е. имеется на каждого пользователя 3 записи со значениями fieldid= 2, 3, 4. ВОПРОС: Существует ли какой-нибудь запрос, чтобы выбрать N записей из таблицы пользователей и присоединить к ним поля data из таблицы дополнительных полей так, чтобы они были в виде столбцов в результате запроса? (в моем случае 3 столбца) Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2019, 15:58 |
|
Не могу найти нигде примера, прошу помощи.
|
|||
---|---|---|---|
#18+
Вот, вроде получилось так - через подзапросы: SELECT mdl_groups_members.userid, mdl_groups.idnumber, mdl_user.lastname, mdl_user.firstname, mdl_user.middlename, mdl_course.shortname, mdl_course_categories.name, (SELECT data FROM mdl_user_info_data WHERE fieldid = 2 and userid = mdl_user.id), (SELECT data FROM mdl_user_info_data WHERE fieldid = 3 and userid = mdl_user.id), (SELECT data FROM mdl_user_info_data WHERE fieldid = 4 and userid = mdl_user.id) FROM mdl_groups_members INNER JOIN mdl_user ON mdl_user.id = mdl_groups_members.userid INNER JOIN mdl_groups ON mdl_groups.id = mdl_groups_members.groupid INNER JOIN mdl_course ON mdl_course.id = mdl_groups.courseid INNER JOIN mdl_course_categories ON mdl_course_categories.id = mdl_course.category INNER JOIN mdl_user_info_data ON mdl_user_info_data.userid = mdl_user.id WHERE mdl_groups_members.groupid = 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2019, 17:41 |
|
|
start [/forum/topic.php?fid=47&fpage=36&tid=1829172]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
2ms |
others: | 9ms |
total: | 132ms |
0 / 0 |