46 lines
1.1 KiB
SQL
46 lines
1.1 KiB
SQL
|
|
|
|
DELIMITER //
|
|
|
|
CREATE PROCEDURE obtenerRepartoPeliculasPorActor(IN p_patron_nombre_actor VARCHAR(100))
|
|
BEGIN
|
|
SELECT
|
|
a.nombre AS nombre_actor,
|
|
a.id_pais AS id_pais_actor,
|
|
p.titulo AS titulo_pelicula,
|
|
p.id_pais AS id_pais_pelicula,
|
|
d.nombre AS nombre_director,
|
|
d.id_pais AS id_pais_director,
|
|
d.fecha_nacimiento AS fecha_nacimiento_director
|
|
FROM reparto r
|
|
JOIN actor a ON r.id_actor = a.identificador
|
|
JOIN pelicula p ON p.identificador = r.id_pelicula
|
|
JOIN director d ON p.id_director = d.identificador
|
|
WHERE p.identificador IN (
|
|
SELECT re.id_pelicula
|
|
FROM reparto re
|
|
JOIN actor ac ON re.id_actor = ac.identificador
|
|
JOIN pelicula pe ON re.id_pelicula = pe.identificador
|
|
WHERE ac.nombre LIKE p_patron_nombre_actor
|
|
);
|
|
END;
|
|
//
|
|
|
|
CREATE FUNCTION obtenerNumeroActoresPelicula(p_id_pelicula INT)
|
|
RETURNS INT
|
|
DETERMINISTIC
|
|
READS SQL DATA
|
|
BEGIN
|
|
DECLARE total_actores_pelicula INT;
|
|
|
|
SELECT COUNT(*) INTO total_actores_pelicula
|
|
FROM reparto
|
|
WHERE id_pelicula = p_id_pelicula;
|
|
|
|
RETURN total_actores_pelicula;
|
|
END;
|
|
//
|
|
|
|
DELIMITER ;
|
|
|