diff --git a/lab-sql-self-cross-join.sql b/lab-sql-self-cross-join.sql new file mode 100644 index 0000000..a9a78bf --- /dev/null +++ b/lab-sql-self-cross-join.sql @@ -0,0 +1,34 @@ +-- 1. Get all pairs of actors that worked together. + +SELECT * +FROM SAKILA.FILM_ACTOR +ORDER BY 2,1; + + +SELECT FA1.ACTOR_ID AS ACTOR_ID_FIRST, FA2.ACTOR_ID AS ACTOR_ID_SECOND, FA1.FILM_ID +FROM SAKILA.FILM_ACTOR FA1 +INNER JOIN SAKILA.FILM_ACTOR FA2 +ON FA1.FILM_ID = FA2.FILM_ID +AND FA1.ACTOR_ID <> FA2.ACTOR_ID +; + +-- 2. Get all pairs of customers that have rented the same film more than 3 times. + +SELECT * FROM SAKILA.RENTAL; + +SELECT R1.CUSTOMER_ID AS CUSTOMER1, R2.CUSTOMER_ID AS CUSTOMER2, COUNT(*) AS RENTAL_COUNT +FROM SAKILA.RENTAL R1 +JOIN SAKILA.RENTAL R2 +ON R1.INVENTORY_ID = R2.INVENTORY_ID +AND R1.CUSTOMER_ID <> R2.CUSTOMER_ID +GROUP BY CUSTOMER1, CUSTOMER2 +HAVING COUNT(*) > 3; + +-- 3. Get all possible pairs of actors and films. + +SELECT * FROM SAKILA.FILM_ACTOR; +SELECT * FROM SAKILA.FILM; + +SELECT FA.ACTOR_ID, F.FILM_ID, F.TITLE +FROM SAKILA.FILM_ACTOR FA +CROSS JOIN SAKILA.FILM F; \ No newline at end of file