Php 选择多个SQL值
我有一个数据如下的表格Php 选择多个SQL值,php,mysql,sql,select,Php,Mysql,Sql,Select,我有一个数据如下的表格 ID Classroom Person 1 1 Alfred 2 1 Maria 3 2 Maria 4 2 Zoe 5 2 Alfred 6 3 Nick 7 3 Paul 8 3 Mike 9 3 Alfred 10 4 Zoe 11 4 Maria 我
ID Classroom Person
1 1 Alfred
2 1 Maria
3 2 Maria
4 2 Zoe
5 2 Alfred
6 3 Nick
7 3 Paul
8 3 Mike
9 3 Alfred
10 4 Zoe
11 4 Maria
我只想选择并返回只有“Alfred”和“Maria”作为个人的教室
以下声明:
Select * from table_name where (Person='maria') and (Person=Alfred')
似乎不起作用
你可以试试这个。分组和计数应该有效
SELECT Classroom
FROM tablename
WHERE Person IN( 'maria', 'Alfred' )
GROUP BY classroom
HAVING Count(Person) = 2
试试这个。分组和计数应该有效
SELECT Classroom
FROM tablename
WHERE Person IN( 'maria', 'Alfred' )
GROUP BY classroom
HAVING Count(Person) = 2
您可以使用group by并具有:
这假设一个人不能在教室里多次
这将检查教室中是否有两个名字,它们是否是两个感兴趣的名字。如果可以复制,则需要:
having count(distinct name) = 2 and
count(distinct case when person in ('maria', 'Alfred') then person end) = 2;
您可以使用group by并具有:
这假设一个人不能在教室里多次
这将检查教室中是否有两个名字,它们是否是两个感兴趣的名字。如果可以复制,则需要:
having count(distinct name) = 2 and
count(distinct case when person in ('maria', 'Alfred') then person end) = 2;
你做了什么努力?那么,你是在试图得到阿尔弗雷德和玛丽亚所在教室的教室号码吗?当然,这是行不通的。一个人不可能同时成为“阿尔弗雷德”和“玛丽亚”。您希望它是“Alfred”或“Maria”。这是一个合理但非常基本的问题,想知道为什么会有否决票吗?@user3677132您可以包括所需的输出吗?您做了哪些努力?那么您是否试图获取该教室Alfred和Maria行都存在的教室编号?当然,这不起作用。一个人不可能同时成为“阿尔弗雷德”和“玛丽亚”。你希望它是“阿尔弗雷德”或“玛丽亚”。这是一个合理但非常基本的问题,想知道为什么会有否决票吗?@user3677132你能包括所需的输出吗?不太正确。OP似乎只想要这两个名字在教室里。@GordonLinoff-对不起,我没听清楚。甚至我的查询也在做同样的事情。您的查询将选择教室=2,因为这两个名称都有,即使它也有Zoe。我修复了您的SQL FIDLE,将数据放在OP中以演示问题:。但简单地说,where是在have之前执行的,因此have中永远不会考虑其他名称。你的问题是对一个非常相似的问题的正确回答。@GordonLinoff-是的,先生,你是对的。谢谢你让我明白不太对。OP似乎只想要这两个名字在教室里。@GordonLinoff-对不起,我没听清楚。甚至我的查询也在做同样的事情。您的查询将选择教室=2,因为这两个名称都有,即使它也有Zoe。我修复了您的SQL FIDLE,将数据放在OP中以演示问题:。但简单地说,where是在have之前执行的,因此have中永远不会考虑其他名称。你的问题是对一个非常相似的问题的正确回答。@GordonLinoff-是的,先生,你是对的。谢谢你让我明白,经过一次快速测试,它似乎起作用了。非常感谢戈登。经过快速测试后,它似乎开始工作了。非常感谢,戈登。