Intereting Posts
Как перестроить индекс в определенных столбцах таблицы? как вставить строку в базу данных SQL в ADO.Net. Как объединить SQL-запросы с разными выражениями? Различные способы добавления столбца Как я могу использовать sub-запрос для подсчета результата до ограничения? SQL «AT TIME ZONE», широкий запрос и выражение «SELECT» всех столбцов (tablename. *) Режим SQL Server SQL Как я могу написать эквивалентный SQL-запрос с соединением? Помогите мне с моим SQL-запросом (вам нужно всегда возвращать хотя бы одну строку). порядок столбцов в инструкции SELECT * – гарантируется? Использование SQL-запроса для поиска деталей клиентов, заказавших> х типов продуктов Предпочтительный метод проектирования базы данных для назначения ролей пользователей? (Шляпы против групп) Использование LIKE в предложении Oracle IN SELECT строк со вторым самым высоким значением в столбце Каков наилучший способ создания рангов в MYSQL?

Запрос языка SQL

Во-первых, учитывая эту таблицу

CREATE TABLE play( movie VARCHAR(256), scene VARCHAR(256), actor VARCHAR(256)); 

Я бы хотел найти имена актеров, которые играли в фильмах, в которых играет ангела Джоли. будет ли эта работа

 SELECT p.actor FROM play p WHERE p.actor NOT LIKE 'Angelina Jolie' AND p.movie IN (SELECT p.movie FROM play p WHERE p.actor = 'Angelina Jolie'); 

Второй вопрос: я хотел бы напечатать имена актеров, которые играют только в фильмах, в которых играет ангела Джоли. Будет ли эта работа

 SELECT p.actor FROM play p WHERE p.actor NOT LIKE 'Angelina Jolie' AND p.movie = ALL(SELECT p.movie FROM play p WHERE p.actor = 'Angelina Jolie'); 

Ваш первый запрос будет работать, а не второй.

Это будет работать:

  SELECT distinct actor FROM play p WHERE p.actor <> 'Angelina Jolie' and movie in (SELECT p.movie FROM play p WHERE p.actor = 'Angelina Jolie') and actor not in -- actors in movies without Jolie (SELECT p.actor FROM play p WHERE movie in (select distinct movie from play where movie not in( select p.movie from play p WHERE p.actor = 'Angelina Jolie') ))