自连接的排序问题

Ordering issues with self join

我有2张桌子。评论者有 2 列(rID、姓名)和评级有 3 列(rID、mID、星)。我想 select 所有评论家对,以便两位评论家都对同一部电影进行评分。查询应 return 两位审稿人的姓名,消除重复项,并 return 每对的姓名按字母顺序排列。我的代码是:

select distinct Re1.name, Re2.name 
from Reviewer Re1, Rating R1, Rating R2, Reviewer Re2
where R1.mID = R2.mID
and Re1.rID = R1.rID
and Re2.rID = R2.rID
and R1.rID <> R2.rID 
group by R1.mid
order by Re1.name

它产生这个:

Ashley White        Chris Jackson
Chris Jackson       Brittany Harris
Elizabeth Thomas    Daniel Lewis
James Cameron       Elizabeth Thomas
Mike Anderson       Sarah Martinez

... 而预期结果是:

Ashley White        Chris Jackson
Brittany Harris     Chris Jackson
Daniel Lewis        Elizabeth Thomas
Elizabeth Thomas    James Cameron
Mike Anderson       Sarah Martinez

我错过了什么?

使用 R1. r ID < R2. r ID 而不是 <>

这样就可以根据ID来控制顺序了。

如果订单应该基于姓名,则保留您原来的 ON 条件并 添加 R1. name < R2. name.