2

「『アート・ガーファンクル』に携わったすべての人を挙げてください」という次の質問を解いていました。

質問はノーです。16 ここ : http://sqlzoo.net/wiki/More_JOIN_operations

編集:名前リスト全体を取得するために次のコードを書きましたが、無駄でした

select name 
from actor left join casting on id=actorid
where movieid IN ( select movieid
from casting left join actor on id=actorid
where id IN ( select id from actor where name ='Art Garfunkel'))

どこが間違っているのか教えてください。

4

3 に答える 3

3

これを試して:

SELECT a.name 
FROM actor a 
INNER JOIN casting b ON a.id = b.actorid 
INNER JOIN (SELECT b.movieid FROM casting b 
            INNER JOIN actor c ON b.actorid=c.id AND c.name = 'Art Garfunkel'
           ) c ON b.movieid = c.movieid 
where a.name <> 'Art Garfunkel';
于 2013-07-29T15:24:09.460 に答える
0

これにはサブクエリは必要ないと思います.JOINSでのみ実行できます..

select distinct c1.name
from movie a 
inner join casting b on a.id=b.movieid
inner join actor c on b.actorid=c.id and c.name = 'Art Garfunkel'
inner join actor c1 on b.actorid=c.id and c.name <> 'Art Garfunkel'
于 2013-07-29T15:25:19.690 に答える