php mysql选择多个id

php mysql选择多个id,php,mysql,sql,database,Php,Mysql,Sql,Database,我有三张桌子,顾客班的学生。。。。。 这是我的表格结构: 用于用户登录帐户的客户表 我使用以下查询从custmer_id下的students表中获取数据 但看起来,无论我在学生桌里添了多少学生,每个教室都会被退回来。我在我的类表中也添加了3个类,例如:class1 class2 class3,我只想显示添加到class1下的学生,如果我运行class2和class3,返回相同学生的学生 我可以得到一些关于如何正确查询此内容的帮助吗?只需添加到WHERE子句中,并且Class1中的WHERE类id

我有三张桌子,顾客班的学生。。。。。 这是我的表格结构:

用于用户登录帐户的客户表

我使用以下查询从custmer_id下的students表中获取数据

但看起来,无论我在学生桌里添了多少学生,每个教室都会被退回来。我在我的类表中也添加了3个类,例如:class1 class2 class3,我只想显示添加到class1下的学生,如果我运行class2和class3,返回相同学生的学生


我可以得到一些关于如何正确查询此内容的帮助吗?

只需添加到WHERE子句中,并且Class1中的WHERE类id首先需要在students表中添加一个引用列。
然后,如果您想获得数据类,只需使用“按类分组”id。您需要的任何方式都可以让您的问题变得非常清楚。

从我看到的情况来看,我认为您需要将学生表连接到客户表或类表,但这没有什么意义。然后你可以使用简单的连接得到你的结果,比如

SELECT  student_id, class_id, firstname, image
FROM    students s,
        class c,
        customer u
WHERE   u.customer_id = c.customer_id
AND     s.customer_id = c.customer_id
AND     c.customer_id = $this->customer->getId()

或者类似的事情,在您将customer\u id列添加到students表之后。

我建议在customers和Class之间创建一个链接表

通过从类表中删除customer_id来简化类表

然后创建一个Student_has_Class表,该表的

Student_has_Class = student_id, class_id
然后,您可以查询该表以查找分配给哪个班级的学生

$query = $this->db->query("SELECT class_id FROM " . DB_PREFIX . "Student_has_Class WHERE 
student_id = '" . $studentId . "'");

我看不出这是怎么回事。您的学生表中没有customer\u id字段。哦,抱歉,我的学生表中有customer\u id字段。。。我只是错过了,我现在编辑了我的问题是的,你的答案就是我的意思我的问题。。。你能解释一下是怎么回事吗?在Class_ID son上使用group by。但在上面使用group by子句..你将在类上获得学生的任何聚合数据..就像类上的学生数量一样。当我尝试此查询时,我得到以下错误:注意:错误:字段列表中的“Class_ID”列不明确错误号:1052选择学生ID,Class_ID,firstname,来自学生s,c类,customer u的图像,其中u.customer_id=c.customer_id和s.customer_id=c.customer_id和c.customer_id='1',基于您列出的不应含糊的列。更改第一行以选择student_id、c.class_id、firstname、image以防止出现这种情况
Student_has_Class = student_id, class_id
$query = $this->db->query("SELECT class_id FROM " . DB_PREFIX . "Student_has_Class WHERE 
student_id = '" . $studentId . "'");