【发布时间】:2011-01-26 22:03:58
【问题描述】:
我有一个表,Classes 和另一个表,我称之为“课程”——即由特定人员在特定地点教授的课程实例。我想拉一张表格,基本上只是根据某些课程参数向我显示哪些课程处于活动状态。例如:
课程 类id|类名 --------|------------ 1|一级 2|二级 3|不同的类 ETC... 培训班 course_id|class_id|房间 ---------|--------|-------- 1| 3| 1 2| 3| 2 3| 1| 1 4| 3| 1 5| 3| 2 6| 2| 1 ETC...我想知道是否有一种方法可以让我得到像SELECT classes.* FROM classes JOIN courses ON classes.class_id=courses.class_id WHERE courses.room=1 这样的东西来只返回每个类的一个实例。发生的情况是,我只获得了 1 号房间的课程,但我获得了每个课程的多个实例,因为 1 号房间的课程表中有该课程的多个实例。
我尝试了所有不同类型的JOIN - 左、右、内等 - 因为我是根据另一张桌子的规格从一张桌子上拉出来的,所以它们似乎都给了我相同的结果。
所以我得到:
class_id| class_name |course_id|房间 --------|-------------|---------|-------- 1|一级| 3| 1 2|二级| 6| 1 3|不同等级| 1| 1 3|不同等级| 4| 1 ETC...但我只想得到:
class_id| class_name |course_id|房间 --------|-------------|---------|-------- 1|一级| 3| 1 2|二级| 6| 1 3|不同等级| 1| 1 ETC...我可以在 Classes 中的每一行的第一场比赛中只使用 JOIN 吗?我对 MySQL 有点陌生,所以我很难清楚地表达我想做的事情;我很抱歉。
另外:我正在通过PDO 将所有这些都放入 PHP 中 - 也许在 PDO 中有一种特定的方法可以实现这一点?
【问题讨论】:
-
如果您只想要 COURSES 表中的一条记录,您想要哪一条? IE:总是最低的 courseid (& room?) 值?
-
老实说没关系。你说得对,我应该这么说。我只是想获取 CLASSES 数据;我选择 COURSE 的唯一原因是只获得那些具有正确标准的相应课程的课程。