SQL查询帮助,选择distinct

时间:2011-12-16 04:43:59

标签: mysql

坚持一些编码。我必须展示参加某一课程的IT学生。 所以这是我的代码到目前为止,它显示了IT学生的名字,但是当它们显示他们注册的课程时,它会显示每一门课程。

SELECT DISTINCT s.sid, s.sname, e.ccode
FROM student s, enrolled e
WHERE s.programme = 'IT';

我认为它与WHERE s.programme ='IT'行有关,它没有连接到e.ccode,我该怎么做?

2 个答案:

答案 0 :(得分:2)

这是一个交叉连接,你需要有一些连接条件来过滤结果。其他明智的学生将加入每一行注册表。

SELECT DISTINCT s.sid, s.sname, e.ccode
FROM student s INNER JOIN  enrolled e on s.sid = e.sid
WHERE s.programme = 'IT';

假设已登记的表具有学生ID。

答案 1 :(得分:0)

  SELECT DISTINCT s.sid, s.sname, e.ccode
    FROM student s INNER JOIN  enrolled e on s.sid = e.sid
    WHERE s.programme = 'IT';//use inner join

实际上,DISTINCT并没有将自己限制在1列,基本上当你说:

SELECT DISTINCT a, b

你所说的是,“给我一个明显的a和b组合值”......就像一个多列的UNIQUE索引