У меня 3 таблицы:
Classrooms
Courses
Members
Это таблица members
-----------------------------------------
| Member Name | Preferences |
-----------------------------------------
| Jhon Doe | CS201,CS304,CS604 |
| Neo | CS201,CS504,CS302 |
| Jhon | CS201,CS701,CS704 |
-----------------------------------------
Правила предпочтений:
Мой вопрос:
Как я могу получить предпочтения членов от этих членов, которые желают пройти один курс среди своих курсов предпочтений
------------------------------------------------------
| Course-Code | Willing Members | Preferred |
------------------------------------------------------
| CS201 | Jhon Doe,Neo,Jhon | Neo |
| CS304 | Jhon Doe,Neo,Jhon | Jhon |
------------------------------------------------------
Вы должны сделать соединение между courses
и таблицей members
по общему атрибуту; course_id
. Результат должен быть сгруппирован по курсу_ид и предпочитаем поля, чтобы получить желающих членов, используя функцию group_concat. Вот запрос:
SELECT A.course_id 'Course-Code', GROUP_CONCAT(DISTINCT B.name ORDER BY B.name SEPARATOR ',')
'Willing Members', B.prefer 'Preferred' FROM courses A
LEFT JOIN members B ON A.course_id=B.course_id
GROUP BY A.course_id, B.prefer;