如何在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
答案 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