Mysql sql对两个结果在两个不同的列中
我正在做sql的练习: 数据库是: 电影中期、片名、年份、导演 中文:有一部电影有ID号mID、片名、发行年份和>导演 审阅者rID,姓名 ID号为rID的审阅者有特定的姓名 评级rID、mID、星级、评级日期 中文:影评人里德在某个特定的日期给电影《米德》定了一个1-5级的星级 他们使用此查询将相同的结果合并为两个克隆: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
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
及
意味着
获取值小于其他值的审阅者名称
基本上,这两个条件都是为了检查您没有得到任何重复值
另请注意,如果删除任何条件,您可能会得到重复/双条目我们正在搜索的查询:对于所有对审阅者,如果两个审阅者都对同一部电影进行了评分,请返回两个审阅者的姓名。消除重复项,不要将审阅者与自己配对,并且每对只包含一次。对于每一对,按字母顺序返回该对中的名称。我们正在搜索的查询:对于所有对的审阅者,如果两个审阅者都对同一部电影进行了评级,则返回两个审阅者的名称。消除重复项,不要将审阅者与自己配对,并且每对只包含一次。对于每一对,按字母顺序返回对中的名称。