-
Notifications
You must be signed in to change notification settings - Fork 0
/
More_JOIN_operations.sql
100 lines (76 loc) · 2.56 KB
/
More_JOIN_operations.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
--Table 1: movie(id, title, yr, director, budget, gross)
--Table 2: actor(id, name)
--Table 3: casting(movieid, actorid, ord)
--1. List the films where the yr is 1962.
SELECT id, title
FROM movie
WHERE yr='1962';
--2. Give year of 'Citizen Kane'.
SELECT yr
FROM movie
WHERE title='Citizen Kane';
--3. List all of the Star Trek movies, include the id, title and yr
--(all of these movies include the words Star Trek in the title). Order results by year.
SELECT id, title, yr
FROM movie
WHERE title LIKE '%Star Trek%';
--4. What id number does the actor 'Glenn Close' have?
SELECT id
FROM actor
WHERE name='Glenn Close';
--5. What is the id of the film 'Casablanca'.
SELECT id
FROM movie
WHERE title='Casablanca';
--6. Obtain the cast list for 'Casablanca'. Use movieid=11768.
SELECT name
FROM actor JOIN casting ON actor.id=casting.actorid
WHERE movieid=11768;
--7. Obtain the cast list for the film 'Alien'.
SELECT name
FROM actor JOIN casting ON actor.id=casting.actorid
WHERE casting.movieid =
(SELECT id
FROM movie
WHERE title='Alien');
--8. List the films in which 'Harrison Ford' has appeared.
SELECT title
FROM movie JOIN casting
ON movie.id=casting.movieid
WHERE casting.actorid =
(SELECT id
FROM actor
WHERE name='Harrison Ford');
--9. List the films where 'Harrison Ford' has appeared - but not in the starring role.
SELECT movie.title
FROM movie
JOIN casting ON casting.movieid=movie.id
JOIN actor ON actor.id=casting.actorid
WHERE actor.name='Harrison Ford'
AND casting.ord !=1;
--10. List the films together with the leading star for all 1962 films.
SELECT movie.title, actor.name
FROM movie
JOIN casting ON casting.movieid=movie.id
JOIN actor ON actor.id=casting.actorid
WHERE movie.yr='1962' and casting.ord=1;
--11. Which were the busiest years for 'Rock Hudson',
--show the year and the number of movies he made each year
--for any year in which he made more than 2 movies.
SELECT movie.yr, COUNT(title)
FROM movie
JOIN casting ON casting.movieid=movie.id
JOIN actor ON actor.id=casting.actorid
WHERE actor.name='Rock Hudson'
GROUP BY movie.yr
HAVING COUNT(title)>2;
--12. List the film title and the leading actor for all of the films 'Julie Andrews' played in.
SELECT movie.title, actor.name
FROM movie
JOIN casting ON (casting.movieid=movie.id AND casting.ord=1)
JOIN actor ON actor.id=casting.actorid
WHERE casting.movieid IN
(SELECT movieid FROM casting
WHERE actorid IN (
SELECT id FROM actor
WHERE name='Julie Andrews'));