Mysql选择查询澄清

Mysql选择查询澄清,mysql,Mysql,我对下面的问题有疑问,请帮我解答一下 从测试中选择* 式中(字段id=87,数值在(“xxxx”)中)和(字段id=88,数值在(“R”)中) 这将导致空行, 如何编写我想使用“and”条件匹配id和值的查询 我的表有以下值: 我想你想要的是所有符合这两个条件的学生。一种方法是按学生汇总,然后断言条件: SELECT student_id FROM yourTable GROUP BY student_id HAVING SUM((field_id, value) = (87, 'xx

我对下面的问题有疑问,请帮我解答一下

从测试中选择*
式中(字段id=87,数值在(“xxxx”)中)和(字段id=88,数值在(“R”)中)
这将导致空行, 如何编写我想使用“and”条件匹配id和值的查询

我的表有以下值:


我想你想要的是所有符合这两个条件的学生。一种方法是按学生汇总,然后断言条件:

SELECT student_id
FROM yourTable
GROUP BY student_id
HAVING
    SUM((field_id, value) = (87, 'xxxx')) > 0 AND
    SUM((field_id, value) = (88, 'R')) > 0;

您需要在两个条件之间使用
,因为
永远不会满足,并且它总是给您0行<代码>(字段id=87,值在(“xxxx”)中)或(字段id=88,值在(“R”)中)@stud3n我怀疑OP打算将此逻辑应用于属于单个学生的所有记录。@TimBiegeleisen,哦,这可能是可能的。谢谢。@你能澄清一下你的要求吗?有没有可能将你的查询改为使用“in”条件?与('R','A')中的值一样,当前它只匹配value='R'@ayyanarpms。如果您有其他要求,我可能建议您提出一个新问题。我不想在这里编辑我的答案。实际上这个问题只有那个要求。请检查问题,我在条件中使用的只是值