我有2张桌子。评论者有2列(rID,名称)和评分3列(rID,mID,星星)。我想选择所有评论者对,以便两位评论者对同一部电影进行评分。查询应返回两个审阅者的名称,消除重复项并按字母顺序返回每对的名称。我的代码是:
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
我错过了什么?
答案 0 :(得分:1)
使用R1. r ID < R2. r ID
代替<>
。
这样您就可以根据ID
控制订单了。
如果订单应基于名称,请保留原始ON
条件并添加 R1. name < R2. name
。