course_completionsSQL подзапросы - один псевдоним столбца
+-----------------------------------------------+
| id coursemodid userid state timemodified |
+-----------------------------------------------+
| 370 23 2 1 1433582890 |
| 329 24 89 1 1427771915 |
| 333 30 39 1 1428309816 |
| 332 32 39 1 1428303307 |
| 327 33 40 1 1427689703 |
| 328 34 89 1 1427710711 |
| 303 35 41 1 1410258482 |
| 358 36 99 1 1432020067 |
| 365 25 2 1 1433142455 |
| 304 26 69 1 1410717866 |
| 353 37 95 1 1430387005 |
| 416 38 2 1 1438972465 |
| 300 27 70 1 1409824001 |
| 302 29 74 1 1412055704 |
| 297 30 2 1 1409582123 |
| 301 133 41 1 1410255923 |
| 336 133 91 1 1428398435 |
| 364 133 40 1 1433142348 |
| 312 133 85 1 1425863621 |
+-----------------------------------------------+
course_modules
+------------------+
| id course |
+------------------+
| 23 6 |
| 24 6 |
| 25 6 |
| 26 6 |
| 27 6 |
| 28 6 |
| 29 8 |
| 30 8 |
| 31 8 |
| 32 8 |
| 33 8 |
| 34 5 |
| 35 5 |
| 36 5 |
| 37 5 |
| 38 5 |
| 39 9 |
| 40 9 |
| 41 9 |
+------------------+
course_mod_settings
+--------------------------------------+
|id course modinstance |
+--------------------------------------+
| 27 8 30 |
| 28 8 31 |
| 29 8 32 |
| 30 8 33 |
| 31 6 23 |
| 32 6 24 |
| 33 6 25 |
| 34 6 26 |
| 35 6 27 |
| 36 6 28 |
| 37 9 39 |
| 38 9 40 |
| 39 9 41 |
+--------------------------------------+
Я пытаясь создать два подзапроса в одном SQL-заявлении, например, я хочу, чтобы значения таблиц «критерии параметров мод» находились в одном столбце и подсчитывались значения таблиц «course_completions» в одном столбце для конкретного пользователя вместе с курсом.
Не должно быть отношения между count (cms.id) и count (cc.id), за исключением идентификатора курса, поскольку count (cms.id) - это количество пользовательских модулей, а count (cc.id) - это установленный по умолчанию.
ВЫХОД:
COURSE USERID count(cms.id) count(cc.id)
6 89 3 6
6 39 7 6
6 40 5 6
8 69 3 4
8 2 0 4
8 95 4 4
КУРС: получение courseid
USERID: получение Идентификатор_пользователя
Количество (cms.id): получение количество завершенных пользовательских модулей.
Количества (cc.id): получение количества настроек (например: Для курса 6, подсчитывать настройки имеют 6 и конечно 4 сосчитать настройки имеет 3.
SELECT cm.course
,cc.userid
,count(cc.coursemodid) AS usermodules
,(
SELECT count(ccc.id)
FROM course_mod_settings cms
INNER JOIN course_modules cm ON cms.course = cm.course
) AS modsettings
FROM course_completions cc
INNER JOIN course_modules cm ON cc.coursemodid = cm.id
WHERE cc.STATE = 1
GROUP BY cm.cours
,cc.userid
Ваш вопрос не очень ясен, а также, пожалуйста, используйте соответствующий тег для rdbms, с которым вы работаете. –
@ Zohar Peled - я четко объяснил вопрос подробно. Могу ли я узнать, где вы не получили – ronquiq
Почему вы не можете сделать прямое внутреннее соединение на вашей таблице 'course_mod_settings'? – FutbolFan