Подзапрос возвращает более 1 строки в моем коде - PullRequest
0 голосов
/ 20 мая 2019

я написал это и получил ошибку, только что запустил sql, так что я не знаю, в чем проблема .. база данных sakila - https://dev.mysql.com/doc/sakila/en/sakila-structure.html, и запрос состоит в том, чтобы найти имя актера, который играл вфильм "АФРИКАНСКИЕ ЯЙЦА"

SELECT a.first_name, a.last_name
FROM actor a
WHERE
    (SELECT actor_id
     FROM film_actor 
     WHERE
        (SELECT film_id
         FROM film
         WHERE title = "AFRICAN EGG"))

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Вы должны включить сравнение в свои операторы where

SELECT a.first_name, a.last_name
FROM actor a
WHERE a.actor_id in      -- probably actor id
    (SELECT actor_id
     FROM film_actor 
     WHERE film_id in    -- probably film id
        (SELECT film_id
         FROM film
         WHERE title = "AFRICAN EGG"))

Вы также можете сделать это с объединениями

SELECT a.first_name, a.last_name
FROM actor a join film_actor fa on
    a.actor_id = fa.actor_id
  JOIN film f ON
    fa.film_id = f.film_id
WHERE f.title = "AFRICAN EGG";
0 голосов
/ 20 мая 2019

Используйте приведенные ниже запросы в зависимости от ваших требований.

SELECT a.first_name, a.last_name
FROM actor a
WHERE a.id IN
    (SELECT fa.actor_id
     FROM film_actor fa
     WHERE fa.film_id IN
        (SELECT film_id
         FROM film
         WHERE title = "AFRICAN EGG"))

SELECT 
    a.first_name,
    a.last_name
FROM actor a 
JOIN film_actor fa ON fa.film_actor = a.id
JOIN film f ON f.id = fa.film_id
WHERE f.title = "AFRICAN EGG";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...