w3resource

SQL exercises on movie Database: Find the titles of all movies directed by James Cameron

SQL movie Database: Subquery Exercise-15 with Solution

15. From the following tables, write a SQL query to find the movies directed by 'James Cameron'. Return movie title.

Sample table: director


Sample table: movie_direction


Sample table: movie


Sample Solution:

SELECT mov_title
FROM movie
WHERE mov_id IN (
SELECT mov_id 
FROM movie_direction 
WHERE dir_id IN (
SELECT dir_id 
FROM director 
WHERE dir_fname = 'James' AND dir_lname='Cameron'
));

OR


SELECT mov_title FROM movie 
JOIN  movie_direction 
 ON movie.mov_id=movie_direction.mov_id
JOIN  director 
 ON movie_direction.dir_id=director.dir_id
WHERE dir_fname = 'James' AND dir_lname='Cameron';

Sample Output:

                     mov_title
----------------------------------------------------
 Titanic
 Aliens
(2 rows)

Code Explanation:

The said query in SQL that selects the dir_id of the director named James Cameron from the director table, and then selects the mov_id of all movies directed by James Cameron from the movie_direction table. Finally, the query selects the title of each of those movies from the movie table.
The subquery is used to find the director ID for James Cameron, and then uses another subquery to find all movies directed by him based on the director ID. Then the outer most query retrieves the titles of all those movies from the movie table.

Relational Algebra Expression:

Relational Algebra Expression: Find the titles of all movies directed by James Cameron.

Relational Algebra Tree:

Relational Algebra Tree: Find the titles of all movies directed by James Cameron.

Practice Online


Movie database model

Query Visualization for Sample Solution:

Duration:

Query visualization of Find the titles of all movies directed by James Cameron - Duration

Rows:

Query visualization of Find the titles of all movies directed by James Cameron - Rows

Cost:

Query visualization of Find the titles of all movies directed by James Cameron - Cost

Query Visualization for alternate Sample Solution:

Duration:

Query visualization of Find the titles of all movies directed by James Cameron - Duration

Rows:

Query visualization of Find the titles of all movies directed by James Cameron - Rows

Cost:

Query visualization of Find the titles of all movies directed by James Cameron - Cost

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: From the following tables, write a SQL query to find the lowest rated movies. Return reviewer name, movie title, and number of stars for those movies.
Next: Write a query in SQL to find the name of those movies where one or more actors acted in two or more movies.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

SQL: Tips of the Day

What is the best way to paginate results in SQL Server?

SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
          FROM      Orders
          WHERE     OrderDate >= '1980-01-01'
        ) AS RowConstrainedResult
WHERE   RowNum >= 1
    AND RowNum < 20
ORDER BY RowNum

Database: SQL Server

Ref: https://bit.ly/3MGrNlk

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook