#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. Младший, пожалуйста, не забудьте проголосовать за этот ответ и отметить как отвеченный, если вы считаете, что он разрешил ваш вопрос. Спасибо.