За последние 24 часа нас посетили 17665 программистов и 1594 робота. Сейчас ищут 1522 программиста ...

Помогите решить задачу

Тема в разделе "Решения, алгоритмы", создана пользователем marel, 8 фев 2015.

  1. marel

    marel Активный пользователь

    С нами с:
    10 окт 2011
    Сообщения:
    3
    Симпатии:
    0
    Добрый день помогите решить следующую задачу! Есть 3 таблицы в mysql
    Первая film в ней id_film, name_film
    1 После нашей эры
    2 Люди в черном
    3 Олигарх

    Вторая aktor в ней id_aktor, name_aktor
    1 Владимир Машков
    2 Уилл Смит

    Третья aktor_film в ней id, aktor, film со связями с предыдущими таблицами
    1 1 3
    2 2 1
    3 2 2

    Понятно что у одного фильма может быть несколько актеров.
    Так вот необходимо сделать выборку всех актеров которые не снимались в конкретном фильме.
    Делаю выборку
    SELECT actor.id_actor, actor.name_actor
    FROM actor
    INNER JOIN aktor_film ON aktor_film.aktor = actor.id_aktor
    WHERE aktor_film.film != 1;

    Но он дублирует актеров ломаю голову уже целый день что делать посоветуйте
     
  2. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    Код (Text):
    1. INNER JOIN aktor_film ON aktor_film.aktor = actor.id_aktor
    обьединив эти таблицы нужно вывести таблицу и посмотреть какая структура у ние получится.
    Зачем 5 актеров из фильма обьединять со всем количеством актеров?

    я бы так решил этот вопрос.
    Код (Text):
    1. select akter_id  //  дай мне список актеров
    2.             from akters_table
    3.             where akter_id not in //  при условий  
    4.             (
    5.                 select film_akter_id
    6.                     from film_akter
    7.                    
    8.             );
     
  3. marel

    marel Активный пользователь

    С нами с:
    10 окт 2011
    Сообщения:
    3
    Симпатии:
    0
    amir_Mirov ты гений как я сам не допер что можно и так, спасибо большое чуть мозги не закипели ))