带有和不带WHERE条件的MySQL查询

时间:2014-06-17 23:24:12

标签: mysql sql

如何一次选择这两个值?例如,我有一个课程,让学生和每个学生都链接到客户端,所以我想要实现的是:

SELECT l.id, 
       l.value * clientStudents/totalStudents as total 
FROM Lesson l 
JOIN lesson_student ls ON l.id = ls.lesson_id 
JOIN Student s ON ls.student_id = s.id 
JOIN Client c ON s.client_id = c.id 
**WHERE c.id = <SOME_CLIENT>**

使用WHERE子句和不使用它的totalStudents成为clientStudents计数。

1 个答案:

答案 0 :(得分:1)

您可以在计算阶段移动条件。类似的东西:

SELECT l.id, 
       l.value * SUM(if(c.id = <SOME_CLIENT>,clientStudents,0)) / SUM(totalStudents) as total 
FROM Lesson l 
JOIN lesson_student ls ON l.id = ls.lesson_id 
JOIN Student s ON ls.student_id = s.id 
JOIN Client c ON s.client_id = c.id
GROUP BY l.id, l.value