2014-10-01 99 views
0

具体的计数值我有这个疑问获取具有相同的ID列

SELECT * 
FROM classroom 
WHERE capacity > (SELECT COUNT(class_history.*) 
        FROM classroom 
        RIGHT JOIN class_history ON classroom.id_class = class_history.id_class 
        GROUP BY class_history.id_class) 
ORDER BY id_class DESC 

我想从计数class_history记录课堂容量,同样与课堂ID,任何人都可以帮我这个查询?

这样我就可以得到这样

classroom 1 - capacity (0/20) 
classroom 2 - capacity (2/20) 
classroom 3 - capacity (9/10) 

下面的截图返回

教室 classroom

class_history class_history

注意:如果容量已满,然后它没有出现,如果不是完全那么它将如果它仍然0

+0

更详细的表结构可能出现不管? – 2014-10-01 06:01:23

+0

此外,一些样本数据以及您想要从中产生的结果会很好。帮助我们帮助你。 – Mureinik 2014-10-01 06:02:49

+0

感谢您的回复,在这里我已经把截图 – 2014-10-01 06:07:41

回答

1

使用LEFT JOIN,它应该解决您的问题

SELECT classroom.id_class, COUNT(class_history.id_class), capacity 
FROM classroom LEFT JOIN class_history 
ON classroom.id_class = class_history.id_class 
GROUP BY classroom.id_class 
HAVING COUNT(class_history.id_class) < capacity 
+0

@Khrisna,请让知道它是否没有帮助? – 2014-10-01 06:25:40

+0

它的工作原理感谢..但即时通讯对不起,我忘了说,如果容量已满,那么它不会出现,当容量仍然为0时,它会出现。所以当它充分它没有出现,如果没有充分,它会出现 – 2014-10-01 06:35:47

+0

请现在检查.. – 2014-10-01 06:46:03