使用聚合制定MySql连接查询

时间:2012-03-22 13:38:51

标签: mysql relational-database database-schema

假设我有一个包含4个表格的数据库:

  1. 用户:(个人数据库)
    • ID
    • USER_NAME
  2. 课程:(课程名称如数学/健身等)
    • ID
    • lesson_name
  3. 付款(包含使用lesson_id付款和部分付款[整个付款分为12个部分])
    • ID
    • lesson_id
    • 部分
  4. 组:(将用户排到课程中)
    • ID
    • lesson_id
    • USER_ID
  5. 我的问题是如何查询数据库以获取包含所有参加ex的所有人的列表的表。数学(或任何其他lesson_id)及其名称(可能是LEFT JOIN)和每个期间所有付款的总和。所选lesson_id的表头应如下所示:

    用户名|付款1 |付款2 | ......(3-11)...... |付款12

    我不知道如何使这项工作。也许我的MySQL方法是不合适的,或者我应该把它分成更多的查询以获得更大的灵活性。

    感谢您的时间!

1 个答案:

答案 0 :(得分:0)

select users.id, users.user_name,lessons.id, lessons.lesson_name,
    (SELECT SUM(value) FROM payments
     WHERE payment.lesson_id = lessons.id)
FROM users
INNER JOIN groups ON (groups.user_id = users.id) 
INNER JOIN lessons ON (lessons.id = groups.lesson_id)
WHERE .....