Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mySQL-使用GROUP BY/HAVING分组和返回正确值时出现问题_Mysql - Fatal编程技术网

mySQL-使用GROUP BY/HAVING分组和返回正确值时出现问题

mySQL-使用GROUP BY/HAVING分组和返回正确值时出现问题,mysql,Mysql,我有一个带有会议室、会议主题和时隙ID的交叉参考表(交叉参考会议室主题)。每个时隙有多个条目。subjectCode表还包括subjectCodeCategory ID(每个主题只有一个类别,但每个类别有多个主题)。对于一个正在工作的查询,用户正在输入多个subjectCodes,我需要返回所有subjectCodes存在的时隙。我现在使用GROUPBY获得了很好的结果(再次感谢Sparky),并且在一个表中包含了这个查询所需的所有信息:crossref\u room\u subject 我还有

我有一个带有会议室、会议主题和时隙ID的交叉参考表(交叉参考会议室主题)。每个时隙有多个条目。subjectCode表还包括subjectCodeCategory ID(每个主题只有一个类别,但每个类别有多个主题)。对于一个正在工作的查询,用户正在输入多个subjectCodes,我需要返回所有subjectCodes存在的时隙。我现在使用GROUPBY获得了很好的结果(再次感谢Sparky),并且在一个表中包含了这个查询所需的所有信息:crossref\u room\u subject

我还有最后一个场景,它使用了更多的变量,但我无法让它工作。这次用户输入多个SubjectCodeCategory。我必须链接到subjectCodes表以交叉引用subjectCodeCategory和subjectCode。我已经尝试了很多方法,主要是改变了SELECT和/或GROUP BY,这似乎是我应该能够对那些subjectCodeCategories进行分组的地方。但它不起作用(见下文)。对于每个有3个返回的时隙,我都会得到返回——很好,除了它只计算subjectCode,而不考虑subjectCodeCategory。我只需要返回那些表示三个SubjectCodeCategory中的一个(或多个)的时隙。我曾尝试将subjectCodeCategory添加到SELECT和/或GROUP BY子句中,但没有得到更好的结果

感谢您事先提供的任何帮助或想法。 灰色的

选择a.meetingID、a.timeSlot 来自交叉参考室主题a,主题代码b 其中a.subjectID=b.subjectID 及( b、 subjectCodeCategory=8 或b.主题编码类别=19 或b.主题编码类别=23 ) 按a.meetingID、a.timeSlot分组 计数(*)等于3的
限制在0,30,我算出来了。这提供了我需要的结果:

SELECT a.meetingID, a.timeSlot 
FROM crossref_room_subject a , subjectCodes b 
WHERE a.subjectID = b.subjectID 
AND ( b.subjectCodeCategory =8 OR b.subjectCodeCategory =19 OR b.subjectCodeCategory =23 ) 
GROUP BY a.meetingID, a.timeSlot 
HAVING COUNT( DISTINCT b.subjectCodeCategory ) =3 LIMIT 0 , 30