Mysql sql对两个结果在两个不同的列中

Mysql sql对两个结果在两个不同的列中,mysql,sql,database,sqlite,Mysql,Sql,Database,Sqlite,我正在做sql的练习: 数据库是: 电影中期、片名、年份、导演 中文:有一部电影有ID号mID、片名、发行年份和>导演 审阅者rID,姓名 ID号为rID的审阅者有特定的姓名 评级rID、mID、星级、评级日期 中文:影评人里德在某个特定的日期给电影《米德》定了一个1-5级的星级 他们使用此查询将相同的结果合并为两个克隆: select distinct (select name from reviewer where rid = r1.rid) as n1, (select name

我正在做sql的练习: 数据库是:

电影中期、片名、年份、导演 中文:有一部电影有ID号mID、片名、发行年份和>导演

审阅者rID,姓名 ID号为rID的审阅者有特定的姓名

评级rID、mID、星级、评级日期 中文:影评人里德在某个特定的日期给电影《米德》定了一个1-5级的星级

他们使用此查询将相同的结果合并为两个克隆:

select distinct (select name 
from reviewer 
where rid = r1.rid) as n1, 
(select name 
 from reviewer 
  where rid = r2.rid)
  from rating r1 join rating r2 using (mid)
   where r1.rid <> r2.rid and (select name 
    from reviewer 
    where r1.rid = rid) < (select name 
    from reviewer 
    where rid = r2.rid)
  order by n1
我不明白这部分是如何工作的,或者它意味着什么:

     r1.rid <> r2.rid and (select name 
                        from reviewer 
                        where r1.rid = rid) < (select name 
                                               from reviewer 
                                               where rid = r2.rid)
r1.rid r2.rid现在您有一个针对reviewer表的联接,该表别名为r1和r2。r1.rid r2.rid意味着从两个别名中,确保获得的是ID不同的别名

(select name 
 from reviewer 
 where r1.rid = rid) < (select name 
                        from reviewer 
                        where rid = r2.rid)
您正在检索任何可能重复的名称的第一个实例。

r1.rid r2.rid现在您有一个与reviewer表的联接,该表别名为r1和r2。r1.rid r2.rid意味着从两个别名中,确保获得的是ID不同的别名

(select name 
 from reviewer 
 where r1.rid = rid) < (select name 
                        from reviewer 
                        where rid = r2.rid)
您正在检索任何可能重复的名称的第一个实例。

r1.rid r2.rid表示r1.rid不等于r2.rid

意味着

获取值小于其他值的审阅者名称

基本上,这两个条件都是为了检查您没有得到任何重复值

另请注意,如果删除任何条件,可能会得到重复/双条目

r1.rid r2.rid表示r1.rid不等于r2.rid

意味着

获取值小于其他值的审阅者名称

基本上,这两个条件都是为了检查您没有得到任何重复值


另请注意,如果删除任何条件,您可能会得到重复/双条目

我们正在搜索的查询:对于所有对审阅者,如果两个审阅者都对同一部电影进行了评分,请返回两个审阅者的姓名。消除重复项,不要将审阅者与自己配对,并且每对只包含一次。对于每一对,按字母顺序返回该对中的名称。我们正在搜索的查询:对于所有对的审阅者,如果两个审阅者都对同一部电影进行了评级,则返回两个审阅者的名称。消除重复项,不要将审阅者与自己配对,并且每对只包含一次。对于每一对,按字母顺序返回对中的名称。