如何在SQL结果中将行`(a,b)`和`(b,a)`过滤成单行`(a,b)`?

时间:2015-09-14 17:32:23

标签: mysql

如何在SQL结果中将行(a,b)(b,a)过滤到单行(a,b)

在SQL中,我自己加入一个表,并提取主键匹配和其他一些属性不匹配的所有行。

结果是每一行都在结果中“重复”。如何按上述方法过滤这些?

SELECT t1.courseId, t1.teacherId, t2.teacherId
FROM Gives AS t1 INNER JOIN Gives AS t2 ON t1.courseId = t2.courseId AND t1.teacherName <> t2.teacherName

给出结果:

dIntProg mch jat
dIntProg jat mch
dDbb ira sch
dDbb sch ira

2 个答案:

答案 0 :(得分:1)

试试这个?

SELECT t1.courseId, t1.teacherId, t2.teacherId
FROM Gives AS t1 INNER JOIN Gives AS t2 
ON t1.courseId = t2.courseId 
AND t1.teacherName < t2.teacherName

答案 1 :(得分:0)

通常您必须使用GROUP BY来消除重复项,并在不属于GROUP BY条件的所有字段上使用聚合函数。

例如:

SELECT name, SUM(myCount) 
FROM myTable
GROUP BY name