我有一个表,类和另一个我称之为"课程"的表 - 也就是说,某个特定人在特定地方教授的课程.我想拉一个表,基本上只是根据某些课程参数向我显示哪些类是活动的.例如:
CLASSES
class_id|class_name
--------|------------
1|Class One
2|Class Two
3|Different Class
etc...
COURSES
course_id|class_id|room
---------|--------|--------
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|room
--------|--------------|---------|--------
1|Class One | 3| 1
2|Class Two | 6| 1
3|Diferent Class| 1| 1
3|Diferent Class| 4| 1
etc...
但我想得到:
class_id| class_name |course_id|room
--------|--------------|---------|--------
1|Class One | 3| 1
2|Class Two | 6| 1
3|Diferent Class| 1| 1
etc...
我是否只能JOIN在课程中每行的第一场比赛中获得它?我对MySQL很新,所以我在表达我想要做的事情时遇到了一些麻烦; 我道歉.
另外:我将所有这些都通过PHP提取PDO- 也许有一种特定的方法可以实现这一目标PDO吗?
SELECT
classes.class_id,
classes.name,
courses.room
FROM classes
JOIN courses
ON classes.class_id=courses.class_id
WHERE courses.room=1
GROUP BY classes.class_id,classes.name,courses.room
Run Code Online (Sandbox Code Playgroud)
GROUP BY允许您在指定的字段上聚合结果,因此(在本例中)它只需要(classes.class_id,classes.name,courses.room)的唯一元组
有关详细信息,请访问 http://dev.mysql.com/doc/refman/5.0/en/group-by-hidden-columns.html
| 归档时间: |
|
| 查看次数: |
9866 次 |
| 最近记录: |