Difference between revisions of "JOIN Quiz 2"

From SQLZOO
Jump to: navigation, search
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
JOIN Quiz - part 2
 
JOIN Quiz - part 2
  
<quiz shuffle=none display=simple>
+
<div class=quiz>
{Select the statement which lists the unfortunate directors of the movies which have caused financial loses (gross <  budget)
+
<div class=q>Select the statement which lists the unfortunate directors of the movies which have caused financial loses (gross <  budget)
|type="()"}
+
<syntaxhighlight class=d lang='sql'>
- SELECT JOIN(name FROM actor, movie ON actor.id:director WHERE gross < budget) GROUP BY name  
+
SELECT JOIN(name FROM actor, movie
- SELECT name FROM actor INNER JOIN movie BY actor.id = director HAVING gross < budget  
+
      ON actor.id:director WHERE gross < budget)
+ SELECT name FROM actor INNER JOIN movie ON actor.id = director WHERE gross < budget  
+
GROUP BY name </syntaxhighlight>
- SELECT name FROM actor INNER JOIN movie ON actor.id:director WHERE gross < budget  
+
<syntaxhighlight class=d lang='sql'>
- SELECT name FROM director INNER JOIN movie ON movie.id = director.id WHERE gross < budget  
+
SELECT name
 +
FROM actor INNER JOIN movie BY actor.id = director
 +
HAVING gross < budget </syntaxhighlight>
 +
<syntaxhighlight class='d y' lang='sql'>
 +
SELECT name
 +
  FROM actor INNER JOIN movie ON actor.id = director
 +
WHERE gross < budget </syntaxhighlight>
 +
<syntaxhighlight class=d lang='sql'>
 +
SELECT name
 +
  FROM actor INNER JOIN movie ON actor.id:director
 +
WHERE gross < budget </syntaxhighlight>
 +
<syntaxhighlight class=d lang='sql'>
 +
SELECT name
 +
  FROM director INNER JOIN movie ON movie.id = director.id
 +
WHERE gross < budget </syntaxhighlight>
 +
</div>
  
{Select the correct example of JOINing three tables
+
<div class=q>Select the correct example of JOINing three tables
|type="()"}
+
<syntaxhighlight class=d lang='sql'>
- SELECT * FROM actor JOIN casting BY actor.id = actorid JOIN movie BY movie.id = movieid
+
SELECT *  
- SELECT * FROM actor JOIN casting ON actor.id = actorid AND JOIN movie ON movie.id = movieid
+
  FROM actor JOIN casting BY actor.id = actorid
- SELECT * FROM actor JOIN casting JOIN movie ON actor.id = actorid AND movie.id = movieid
+
JOIN movie BY movie.id = movieid </syntaxhighlight>
- SELECT * FROM actor JOIN casting ON actor.id = actorid AND movie ON movie.id = movieid
+
<syntaxhighlight class=d lang='sql'>
+ SELECT * FROM actor JOIN casting ON actor.id = actorid JOIN movie ON movie.id = movieid
+
SELECT *
 +
  FROM actor JOIN casting ON actor.id = actorid
 +
  AND JOIN movie ON movie.id = movieid </syntaxhighlight>
 +
<syntaxhighlight class=d lang='sql'>
 +
SELECT *
 +
  FROM actor JOIN casting
 +
  JOIN movie ON actor.id = actorid
 +
  AND movie.id = movieid </syntaxhighlight>
 +
<syntaxhighlight class=d lang='sql'>
 +
SELECT *
 +
  FROM actor JOIN casting ON actor.id = actorid
 +
  AND movie ON movie.id = movieid </syntaxhighlight>
 +
<syntaxhighlight class='d y' lang='sql'>
 +
SELECT *
 +
  FROM actor JOIN casting ON actor.id = actorid
 +
  JOIN movie ON movie.id = movieid </syntaxhighlight>
 +
</div>
  
{Select the statement that shows the list of actors called 'John' by order of number of movies in which they acted
+
<div class=q>Select the statement that shows the list of actors called 'John' by order of number of movies in which they acted
|type="()"}
+
<syntaxhighlight class=d lang='sql'>
- SELECT name, COUNT(movieid) FROM actor JOIN casting ON actorid=actor.id WHERE name IN 'John %' GROUP BY name ORDER BY 2
+
SELECT name, COUNT(movieid)
- SELECT name, COUNT(movieid) FROM actor JOIN casting ON actorid=actor.id WHERE name LIKE 'J%' GROUP BY name ORDER BY 2 DESC
+
  FROM actor JOIN casting ON actorid=actor.id
+ SELECT name, COUNT(movieid) FROM casting JOIN actor ON actorid=actor.id WHERE name LIKE 'John %' GROUP BY name ORDER BY 2 DESC
+
WHERE name IN 'John %'
- SELECT name, COUNT(movieid) FROM casting JOIN actor WHERE (actorid ON actor.id) AND name LIKE 'John %' GROUP BY name ORDER BY 2 DESC
+
GROUP BY name ORDER BY 2 </syntaxhighlight>
- SELECT name, COUNT(movieid) FROM casting JOIN actor WHERE name LIKE 'John %' GROUP BY name ORDER BY COUNT(movieid) DESC
+
<syntaxhighlight class=d lang='sql'>
 +
SELECT name, COUNT(movieid)
 +
  FROM actor JOIN casting ON actorid=actor.id
 +
WHERE name LIKE 'J%'
 +
GROUP BY name ORDER BY 2 DESC </syntaxhighlight>
 +
<syntaxhighlight class='d y' lang='sql'>
 +
SELECT name, COUNT(movieid)
 +
  FROM casting JOIN actor ON actorid=actor.id
 +
WHERE name LIKE 'John %'
 +
GROUP BY name ORDER BY 2 DESC </syntaxhighlight>
 +
<syntaxhighlight class=d lang='sql'>
 +
SELECT name, COUNT(movieid)
 +
  FROM casting JOIN actor
 +
WHERE (actorid ON actor.id)
 +
  AND name LIKE 'John %'
 +
GROUP BY name ORDER BY 2 DESC </syntaxhighlight>
 +
<syntaxhighlight class=d lang='sql'>
 +
SELECT name, COUNT(movieid)
 +
  FROM casting JOIN actor
 +
WHERE name LIKE 'John %'
 +
GROUP BY name ORDER BY COUNT(movieid) DESC </syntaxhighlight>
 +
</div>
  
{Select the result that would be obtained from the following code: SELECT title FROM movie, casting, actor WHERE name='Paul Hogan' AND movieid=movie.id AND actorid=actor.id AND ord = 1
+
<div class=q>Select the result that would be obtained from the following code:  
<table style='float:left'><caption>Table-A</caption><tr><td>"Crocodile" Dundee</td><td>1</td></tr><tr><td>Crocodile Dundee in Los Angeles</td><td>1</td></tr><tr><td>Flipper</td><td>1</td></tr><tr><td>Lightning Jack</td><td>1</td></tr></table>
+
<syntaxhighlight lang='sql'>
<table style='float:left'><caption>Table-B</caption><tr><td>"Crocodile" Dundee</td></tr><tr><td>Crocodile Dundee in Los Angeles</td></tr><tr><td>Flipper</td></tr><tr><td>Lightning Jack</td></tr></table>
+
SELECT title  
<table style='float:left'><caption>Table-C</caption><tr><td>"Crocodile" Dundee</td></tr><tr><td>Paul Hogan</td></tr><tr><td>1</td></tr></table>
+
  FROM movie, casting, actor  
<table style='float:left'><caption>Table-D</caption><tr><td>"Crocodile" Dundee</td><td>Paul Hogan</td><td>1</td></tr><tr><td>Crocodile Dundee in Los Angeles</td><td>Paul Hogan</td><td>1</td></tr><tr><td>Flipper</td><td>Paul Hogan</td><td>1</td></tr><tr><td>Lightning Jack</td><td>Paul Hogan</td><td>1</td></tr></table>
+
  WHERE name='Paul Hogan' AND movieid=movie.id AND actorid=actor.id AND ord = 1
<table style='float:left'><caption>Table-E</caption><tr><td>"Crocodile" Dundee</td><td>Paul Hogan</td></tr><tr><td>Crocodile Dundee in Los Angeles</td><td>Paul Hogan</td></tr><tr><td>Flipper</td><td>Paul Hogan</td></tr><tr><td>Lightning Jack</td><td>Paul Hogan</td></tr></table>
+
</syntaxhighlight>
|type="()"}
+
<table class=d><caption>Table-A</caption><tr><td>"Crocodile" Dundee</td><td>1</td></tr><tr><td>Crocodile Dundee in Los Angeles</td><td>1</td></tr><tr><td>Flipper</td><td>1</td></tr><tr><td>Lightning Jack</td><td>1</td></tr></table>
- Table-A
+
<table class='d y'><caption>Table-B</caption><tr><td>"Crocodile" Dundee</td></tr><tr><td>Crocodile Dundee in Los Angeles</td></tr><tr><td>Flipper</td></tr><tr><td>Lightning Jack</td></tr></table>
+ Table-B
+
<table class=d><caption>Table-C</caption><tr><td>"Crocodile" Dundee</td></tr><tr><td>Paul Hogan</td></tr><tr><td>1</td></tr></table>
- Table-C
+
<table class=d><caption>Table-D</caption><tr><td>"Crocodile" Dundee</td><td>Paul Hogan</td><td>1</td></tr><tr><td>Crocodile Dundee in Los Angeles</td><td>Paul Hogan</td><td>1</td></tr><tr><td>Flipper</td><td>Paul Hogan</td><td>1</td></tr><tr><td>Lightning Jack</td><td>Paul Hogan</td><td>1</td></tr></table>
- Table-D
+
<table class=d><caption>Table-E</caption><tr><td>"Crocodile" Dundee</td><td>Paul Hogan</td></tr><tr><td>Crocodile Dundee in Los Angeles</td><td>Paul Hogan</td></tr><tr><td>Flipper</td><td>Paul Hogan</td></tr><tr><td>Lightning Jack</td><td>Paul Hogan</td></tr></table>
- Table-E
+
</div>
  
{Select the statement that lists all the actors that starred in movies directed by Ridley Scott
+
<div class=q>Select the statement that lists all the actors that starred in movies directed by Ridley Scott who has id 351
|type="()"}
+
<syntaxhighlight class=d lang='sql'>
- SELECT name FROM movie JOIN casting AND actor ON movie.id = movieid AND actor.id = actorid WHERE ord = NULL AND director = (SELECT id FROM actor WHERE name LIKE 'Ridley Scott')
+
SELECT name
- SELECT name FROM movie JOIN casting JOIN actor ON movie.id = movieid OR actor.id = actorid WHERE ord = 1 AND director = (SELECT id FROM actor WHERE name LIKE 'Ridley Scott')
+
  FROM movie JOIN casting
- SELECT name FROM movie JOIN casting ON movie.id = movieid JOIN actor ON actor.id = actorid WHERE ord = 1 AND actorid = (SELECT id FROM actor WHERE name LIKE 'Ridley Scott')
+
  AND actor ON movie.id = movieid
+ SELECT name FROM movie JOIN casting ON movie.id = movieid JOIN actor ON actor.id = actorid WHERE ord = 1 AND director = (SELECT id FROM actor WHERE name LIKE 'Ridley Scott')
+
  AND actor.id = actorid
- SELECT name FROM movie JOIN casting ON movie.id = actorid JOIN actor ON actor.id = movieid WHERE director = (SELECT id FROM actor WHERE name LIKE 'Ridley Scott')
+
WHERE ord = 1
 +
  AND actor = 351 </syntaxhighlight>
 +
<syntaxhighlight class=d lang='sql'>
 +
SELECT name
 +
  FROM movie JOIN casting
 +
  JOIN actor ON movie.id = movieid
 +
    OR actor.id = actorid
 +
WHERE ord = 1 AND director = 351 </syntaxhighlight>
 +
<syntaxhighlight class=d lang='sql'>
 +
SELECT name
 +
  FROM movie JOIN casting ON movie.id = movieid
 +
  JOIN actor ON actor.id = actorid
 +
WHERE ord = 1 AND actorid = 351 </syntaxhighlight>
 +
<syntaxhighlight class='d y' lang='sql'>
 +
SELECT name
 +
  FROM movie JOIN casting ON actor.id = actorid
 +
  JOIN actor ON movie.id = movieid
 +
WHERE ord = 1 AND director = 351 </syntaxhighlight>
 +
<syntaxhighlight class=d lang='sql'>
 +
SELECT name
 +
  FROM movie JOIN casting ON movie.id = actorid
 +
  JOIN actor ON actor.id = movieid
 +
WHERE director = 351 </syntaxhighlight>
 +
</div>
  
{Select the statement showing all movies with budget bigger than ALL movie with Harrison Ford is '''incorrect'''
+
<div class=q>There are two sensible ways to connect movie and actor. They are:
|type="()"}
+
<div class=d><ul>
- SELECT title FROM movie WHERE budget > ALL (SELECT budget FROM movie JOIN casting JOIN actor ON movie.id = movieid AND actor.id = actorid WHERE name = 'Harrison Ford')
+
  <li>link the director column in movies with the id column in actor</li>
+ SELECT title FROM movie WHERE budget > ALL (SELECT budget FROM movie JOIN casting JOIN actor ON movie.id = movieid AND actor.id = actorid OR name = 'Harrison Ford')
+
  <li>join casting to itself</li>
- SELECT title FROM movie WHERE budget > (SELECT MAX(budget) FROM movie JOIN casting JOIN actor ON movie.id = movieid AND actor.id = actorid WHERE name = 'Harrison Ford')
+
</ul></div>
- SELECT title FROM movie WHERE budget > ALL (SELECT budget FROM movie JOIN casting ON movie.id = movieid JOIN actor ON actor.id = actorid WHERE name = 'Harrison Ford')
+
<div class=d><ul>
- SELECT title FROM movie WHERE budget > (SELECT MAX(budget) FROM movie JOIN casting JOIN actor ON movie.id = movieid AND actor.id = actorid AND name = 'Harrison Ford')
+
  <li>link the actor column in movies with the primary key in actor</li>
 +
  <li>connect the primary keys of movie and actor via the casting table</li>
 +
</ul></div>
 +
<div class='d y'><ul>
 +
  <li>link the director column in movies with the primary key in actor</li>
 +
  <li>connect the primary keys of movie and actor via the casting table</li>
 +
</ul></div>
 +
<div class=d><ul>
 +
  <li>link the director column in movies with the primary key in actor</li>
 +
  <li>connect the primary keys of movie and casting via the actor table</li>
 +
</ul></div>
 +
<div class=d><ul>
 +
  <li>link the movie column in actor with the director column in actor</li>
 +
  <li>connect movie and actor via the casting table</li>
 +
</ul></div>
 +
</div>
  
{Select the result that would be obtained from the following code: SELECT title, yr FROM movie, casting, actor WHERE name='Robert De Niro' AND movieid=movie.id AND actorid=actor.id AND ord = 3
+
<div class=q>Select the result that would be obtained from the following code:  
<table style='float:left'><caption>Table-A</caption><tr><td>A Bronx Tale</td><td>1993</td><td>3</td></tr><tr><td>Bang the Drum Slowly</td><td>1973</td><td>3</td></tr><tr><td>Limitless</td><td>2011</td><td>3</td></tr></table>
+
<syntaxhighlight lang='sql'>
<table style='float:left'><caption>Table-B</caption><tr><td>A Bronx Tale</td><td>1993</td></tr><tr><td>Bang the Drum Slowly</td><td>1973</td></tr><tr><td>Limitless</td><td>2011</td></tr></table>
+
SELECT title, yr  
<table style='float:left'><caption>Table-C</caption><tr><td>A Bronx Tale</td><td>3</td></tr><tr><td>Bang the Drum Slowly</td><td>3</td></tr><tr><td>Limitless</td><td>3</td></tr></table>
+
  FROM movie, casting, actor  
<table style='float:left'><caption>Table-D</caption><tr><td>A Bronx Tale</td></tr><tr><td>Bang the Drum Slowly</td></tr><tr><td>Limitless</td></tr></table>
+
  WHERE name='Robert De Niro' AND movieid=movie.id AND actorid=actor.id AND ord = 3
<table style='float:left'><caption>Table-E</caption><tr><td>A Bronx Tale</td><td>Robert De Niro</td><td>1993</td></tr><tr><td>Bang the Drum Slowly</td><td>Robert De Niro</td><td>1973</td></tr><tr><td>Limitless</td><td>Robert De Niro</td><td>2011</td></tr></table>
+
</syntaxhighlight>
|type="()"}
+
<table class=d><caption>Table-A</caption><tr><td>A Bronx Tale</td><td>1993</td><td>3</td></tr><tr><td>Bang the Drum Slowly</td><td>1973</td><td>3</td></tr><tr><td>Limitless</td><td>2011</td><td>3</td></tr></table>
- Table-A
+
<table class='d y'><caption>Table-B</caption><tr><td>A Bronx Tale</td><td>1993</td></tr><tr><td>Bang the Drum Slowly</td><td>1973</td></tr><tr><td>Limitless</td><td>2011</td></tr></table>
+ Table-B
+
<table class=d><caption>Table-C</caption><tr><td>A Bronx Tale</td><td>3</td></tr><tr><td>Bang the Drum Slowly</td><td>3</td></tr><tr><td>Limitless</td><td>3</td></tr></table>
- Table-C
+
<table class=d><caption>Table-D</caption><tr><td>A Bronx Tale</td></tr><tr><td>Bang the Drum Slowly</td></tr><tr><td>Limitless</td></tr></table>
- Table-D
+
<table class=d><caption>Table-E</caption><tr><td>A Bronx Tale</td><td>Robert De Niro</td><td>1993</td></tr><tr><td>Bang the Drum Slowly</td><td>Robert De Niro</td><td>1973</td></tr><tr><td>Limitless</td><td>Robert De Niro</td><td>2011</td></tr></table>
- Table-E
+
</div>
 
+
</quiz>
+
  
 
[[Category:Quizzes]]
 
[[Category:Quizzes]]

Latest revision as of 23:01, 22 April 2015

JOIN Quiz - part 2

Select the statement which lists the unfortunate directors of the movies which have caused financial loses (gross < budget)
SELECT JOIN(name FROM actor, movie
       ON actor.id:director WHERE gross < budget)
 GROUP BY name
SELECT name
 FROM actor INNER JOIN movie BY actor.id = director
 HAVING gross < budget
SELECT name
  FROM actor INNER JOIN movie ON actor.id = director
 WHERE gross < budget
SELECT name
  FROM actor INNER JOIN movie ON actor.id:director
 WHERE gross < budget
SELECT name
  FROM director INNER JOIN movie ON movie.id = director.id
 WHERE gross < budget
Select the correct example of JOINing three tables
SELECT * 
  FROM actor JOIN casting BY actor.id = actorid
 JOIN movie BY movie.id = movieid
SELECT *
  FROM actor JOIN casting ON actor.id = actorid
   AND JOIN movie ON movie.id = movieid
SELECT *
  FROM actor JOIN casting
  JOIN movie ON actor.id = actorid
   AND movie.id = movieid
SELECT *
  FROM actor JOIN casting ON actor.id = actorid
   AND movie ON movie.id = movieid
SELECT *
  FROM actor JOIN casting ON actor.id = actorid
  JOIN movie ON movie.id = movieid
Select the statement that shows the list of actors called 'John' by order of number of movies in which they acted
SELECT name, COUNT(movieid)
  FROM actor JOIN casting ON actorid=actor.id
 WHERE name IN 'John %'
 GROUP BY name ORDER BY 2
SELECT name, COUNT(movieid)
  FROM actor JOIN casting ON actorid=actor.id
 WHERE name LIKE 'J%'
 GROUP BY name ORDER BY 2 DESC
SELECT name, COUNT(movieid)
  FROM casting JOIN actor ON actorid=actor.id
 WHERE name LIKE 'John %'
 GROUP BY name ORDER BY 2 DESC
SELECT name, COUNT(movieid)
  FROM casting JOIN actor
 WHERE (actorid ON actor.id)
   AND name LIKE 'John %'
 GROUP BY name ORDER BY 2 DESC
SELECT name, COUNT(movieid)
  FROM casting JOIN actor
 WHERE name LIKE 'John %'
 GROUP BY name ORDER BY COUNT(movieid) DESC
Select the result that would be obtained from the following code:
 SELECT title 
   FROM movie, casting, actor 
  WHERE name='Paul Hogan' AND movieid=movie.id AND actorid=actor.id AND ord = 1
Table-A
"Crocodile" Dundee1
Crocodile Dundee in Los Angeles1
Flipper1
Lightning Jack1
Table-B
"Crocodile" Dundee
Crocodile Dundee in Los Angeles
Flipper
Lightning Jack
Table-C
"Crocodile" Dundee
Paul Hogan
1
Table-D
"Crocodile" DundeePaul Hogan1
Crocodile Dundee in Los AngelesPaul Hogan1
FlipperPaul Hogan1
Lightning JackPaul Hogan1
Table-E
"Crocodile" DundeePaul Hogan
Crocodile Dundee in Los AngelesPaul Hogan
FlipperPaul Hogan
Lightning JackPaul Hogan
Select the statement that lists all the actors that starred in movies directed by Ridley Scott who has id 351
SELECT name
  FROM movie JOIN casting
   AND actor ON movie.id = movieid
   AND actor.id = actorid
 WHERE ord = 1
  AND actor = 351
SELECT name
  FROM movie JOIN casting
  JOIN actor ON movie.id = movieid
    OR actor.id = actorid
 WHERE ord = 1 AND director = 351
SELECT name
  FROM movie JOIN casting ON movie.id = movieid
  JOIN actor ON actor.id = actorid
 WHERE ord = 1 AND actorid = 351
SELECT name
  FROM movie JOIN casting ON actor.id = actorid
  JOIN actor ON movie.id = movieid
WHERE ord = 1 AND director = 351
SELECT name
  FROM movie JOIN casting ON movie.id = actorid
  JOIN actor ON actor.id = movieid
 WHERE director = 351
There are two sensible ways to connect movie and actor. They are:
  • link the director column in movies with the id column in actor
  • join casting to itself
  • link the actor column in movies with the primary key in actor
  • connect the primary keys of movie and actor via the casting table
  • link the director column in movies with the primary key in actor
  • connect the primary keys of movie and actor via the casting table
  • link the director column in movies with the primary key in actor
  • connect the primary keys of movie and casting via the actor table
  • link the movie column in actor with the director column in actor
  • connect movie and actor via the casting table
Select the result that would be obtained from the following code:
 SELECT title, yr 
   FROM movie, casting, actor 
  WHERE name='Robert De Niro' AND movieid=movie.id AND actorid=actor.id AND ord = 3
Table-A
A Bronx Tale19933
Bang the Drum Slowly19733
Limitless20113
Table-B
A Bronx Tale1993
Bang the Drum Slowly1973
Limitless2011
Table-C
A Bronx Tale3
Bang the Drum Slowly3
Limitless3
Table-D
A Bronx Tale
Bang the Drum Slowly
Limitless
Table-E
A Bronx TaleRobert De Niro1993
Bang the Drum SlowlyRobert De Niro1973
LimitlessRobert De Niro2011