因此 Sql student(name,roll,department,marks)
中有此表。我必须找到一对具有相同标记的学生(假设成对存在)。
我所做的是:
select student.name,
x.name,
x.marks
from student,
student x
where student.marks = x.marks
and student.name != x.name
o / p是:
alice Alex 40
sam jack 30
jack sam 30
Alex alice 40
问题是如何删除重复的?
答案 0 :(得分:2)
请尝试使用<
(或>
),以确保不包含反向匹配。
select t.name,
x.name,
x.marks
from student t
join student x on t.marks = x.marks
and t.name < x.name
答案 1 :(得分:0)
不要在名称之间使用'!=',只需使用'&lt;'哪一个只能站立一次。
select student.name,
x.name,
x.marks
from student,
student x
where student.marks = x.marks
and student.name < x.name;
答案 2 :(得分:0)
'<'
工作正常,您可以使用以下查询:
SELECT A.Name,
B.Name,
B.Marks
from Student A
LEFT JOIN Student B ON A.Marks=B.Marks AND B.Name < A.Name
WHERE B.Marks IS NOT NULL
由于