2017-08-26 37 views
0

IM在SQL的exercice工作: 數據庫:SQL對兩個結果在兩個不同的列

電影(MID,名稱,年份,導演) 英語:有一個電影的ID號mID,標題,發行年份和>導演。

點評(RID,名稱) 英文:與ID號碼的評RID具有一定的名稱。

評分(rID,mID,stars,ratingDate) 英語評論者rID給了影片mID一些評級(1-5)>一定ratingDate。

他們用此查詢相同的結果有兩種clomns結合:

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) 
+0

我們正在搜索查詢:對於所有對評審的,使得兩個審稿的整體評價爲同一部電影,同時返回評論者的名字。消除重複,不要將評論者與自己配對,並且只將每個對包括一次。對於每一對,按字母順序返回對中的名稱。 –

回答

1

r1.rid <> r2.rid現在你有加入對評審表,它的別名是r1r2r1.rid <> r2.rid手段「從兩個別名,請確保你得到一個地方的ID是不同的。」

(select name 
from reviewer 
where r1.rid = rid) < (select name 
         from reviewer 
         where rid = r2.rid) 

您正在檢索任何潛在重複項中名稱的第一個實例。

2

r1.rid <> r2.rid意味着r1.rid NOT EQUAL TO r2.rid

(select name from reviewer 
where r1.rid = rid)  < (select name from reviewer 
           where rid = r2.rid) 

意味着

get reviewer name whose value is less than other

基本上兩個條件都檢查你沒有得到任何重複值

另請注意,如果您刪除您的任何狀況下,你可能會得到重複/雙項

相關問題