Показывает список с названиями всех фильмов и количеством связанных актеров >> ORACLE <<

#oracle

#Oracle

Вопрос:

Ну, мне нужно вызвать на экране то, что было задано, но как? У меня есть три таблицы, содержащие названия фильмов, в которых указаны имена актеров, и реляционная таблица, содержащая «идентификаторы» для корректного отображения. Но я сталкивался с этим и с трудом решаю, вот таблицы …

 To create Actors table

create table tb_ator(
        id_ator NUMBER (4) PRIMARY KEY NOT NULL,
             nome_ator VARCHAR (50) NOT NULL
    );


To Create Films table

create table tb_filme(
      id_filme NUMBER (4) PRIMARY KEY NOT NULL,
      nome_filme VARCHAR (50) NOT NULL 
);

And finaly, the relational 

create table ator_filme(
      id_filme NUMBER (4) references tb_filme(id_filme),
      id_ator NUMBER (4) references tb_ator(id_ator)
);
  

Как мне решить эту проблему с помощью inner join?

Ответ №1:

 SELECT F.nome_filme, COUNT(AF.id_ator) AS actors 
FROM ator_filme AF INNER JOIN tb_ator A ON AF.id_ator = A.id_ator 
     INNER JOIN tb_filme F ON AF.id_filme = F.id_filme
GROUP BY F.nome_filme;
  

Комментарии:

1. Это работало отлично, но как можно было отобразить то, что не содержит? С «левым соединением»? И что это за ‘F’ и ‘A’?

2. AF, A и F — это просто псевдонимы таблиц, так что вам не нужно вводить их снова

3. Что вы хотите сделать с левым соединением? Я не понял вопроса

4. Младший, пожалуйста, не забудьте проголосовать за этот ответ и отметить как отвеченный, если вы считаете, что он разрешил ваш вопрос. Спасибо.