关于sql查询中的不同值

时间:2013-06-25 11:28:16

标签: php sql distinct

我觉得它很容易,但我所尝试的仍然没有给出预期的结果。

当我尝试运行此查询时:(在较大的表格上)

SELECT Id, Code, newCode, Course, Internship 
FROM courses
WHERE Year ='c' AND (Internship ='IS' OR Internship =  '')
ORDER BY newCode ASC

我得到了这个结果:

id  code    newCode  course
----------------------------
1   30002   3000231  aaaa-1
2   30002   3000232  aaaa-2
3   30002   300021   aaaa-a1
4   30002   300022   aaaa-a2
5   30009   300093   bbbb-1
6   30009   300093   bbbb-2
7   30012   3001231  cccc-1
8   30012   3001232  cccc-2
9   30012   300121   cccc-a1
10  30012   300122   cccc-a2
11  30012   300123   cccc-a3
12  30013   3001331  dddd-1

假设我想要某种sql查询,它只会给我一个只有课程名称的表,(每个新课程都是列中的新值 - 代码), 我想得到的例子:(每门课程的第一部分都很好)

id  code    newCode  course
----------------------------
1   30002   3000231  aaaa-1
5   30009   300093   bbbb-1
7   30012   3001231  cccc-1
12  30013   3001331  dddd-1

我该怎么做? 我试过了:

SELECT Id, Distinct Code, newCode, Course, Internship 
FROM courses
WHERE Year ='c' AND (Internship ='IS' OR Internship =  '')
ORDER BY newCode ASC

为什么它不起作用,如果它没有“独特”,它会失败。

此外,下一个问题不太重要但仍然..有一种方法让我只得到课程本身的名称:“aaaa”而不是“aaaa-a1”考虑到名称不必是这样的模式,但我知道“ - ”之后的可能性是什么(如“-a1”或“-a2”)

3 个答案:

答案 0 :(得分:0)

尝试GROUP BY喜欢

SELECT Id, Code, newCode, Course, Internship 
FROM courses
WHERE Year ='c' AND (Internship ='IS' OR Internship =  '')
GROUP BY Code ORDER BY newCode ASC

答案 1 :(得分:0)

尝试将distinct放在select之后,如下所示:

SELECT distinct Id, Code, newCode, Course, Internship 
FROM courses
WHERE Year ='c' AND (Internship ='IS' OR Internship =  '')
ORDER BY newCode ASC

答案 2 :(得分:0)

对第一列使用distinct,在第一列第一列之后不能使用distinct