-1
Movie(title, year, director, budget, earnings)
Actor(stagename, realname, birthyear)
ActedIn(stagename, title, year, pay)
CanWorkWith(stagename, director)

ステージ名 1 の俳優がステージ名 2 の俳優と同じ映画に出演しているが、その映画での演技の収入が少ないようなステージ名のすべてのペア (ステージ名 1 とステージ名 2 に名前を変更) を見つけます。

SELECT A.stagename, B.stagename
FROM ActedIn A
LEFT JOIN ActedIn B ON A.title = B.title AND A.year = B.year
          AND B.pay > A.pay
WHERE B.name IS NOT NULL

WHERE B.name IS NOT NULL が有効かどうかわからない

4

2 に答える 2

2

http://sqlfiddle.com/#!2/67568/1

select a1.stagename as stagename1, a2.stagename as stagename2, a1.title
from ActedIn as a1
 inner join ActedIn as a2 on (a1.title = a2.title and a1.year = a2.year)
where a1.pay < a2.pay
于 2012-06-14T03:58:17.333 に答える
1
SELECT A.stagename, B.stagename
FROM ActedIn A
INNER JOIN ActedIn B ON A.title = B.title 
AND A.year = B.year AND B.pay > A.pay
WHERE B.name IS NOT NULL

BからNULL値が必要ない場合、LEFT JOINは役に立ちません。

于 2012-06-14T03:53:29.693 に答える