我有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 |
------------------------------------------------------
答案 0 :(得分:0)
您必须在公共属性的courses
和members
表之间执行join; course_id
。结果是在course_id上为grouped并且更喜欢字段,以便使用group_concat function获得愿意的成员。这是查询:
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;