Mysql Получить один столбец из одной таблицы и сопоставить несколько записей во 2-й таблице

0

У меня 3 таблицы:

  • Classrooms
  • Courses
  • Members

Скриншот таблиц

Это таблица members

-----------------------------------------
|  Member Name  |     Preferences       |
-----------------------------------------  
|    Jhon Doe   |    CS201,CS304,CS604  |
|    Neo        |    CS201,CS504,CS302  |
|    Jhon       |    CS201,CS701,CS704  |
-----------------------------------------

Правила предпочтений:

  • Если есть несколько преподавателей, желающих пройти курс, то предпочтительным преподавателем для этих курсов будет тот, у кого более высокое обозначение (например, CS201 и CS304 в приведенной выше таблице "Список предпочтений").

Мой вопрос:

Как я могу получить предпочтения членов от этих членов, которые желают пройти один курс среди своих курсов предпочтений

------------------------------------------------------
|  Course-Code  |     Willing Members   |  Preferred |
------------------------------------------------------  
|    CS201      |     Jhon Doe,Neo,Jhon |       Neo  |
|    CS304      |     Jhon Doe,Neo,Jhon |       Jhon |
------------------------------------------------------
  • 1
    Для столбца Willing Members вы можете использовать GROUP_CONCAT. проверьте это stackoverflow.com/questions/19558443/…
  • 0
    См. Meta.stackoverflow.com/questions/333952/…
Показать ещё 1 комментарий
Теги:

1 ответ

0

Вы должны сделать соединение между 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;
  • 0
    i Group_CONCAT, который работал, но как я могу получить привилегированного члена среди желающих членов на основе вышеуказанного правила предпочтений?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню