как отобразить данные, которые не дублируются с помощью SQL

#sql #sql-server #database #postgresql #duplicates

#sql #sql-сервер #База данных #postgresql #дубликаты

Вопрос:

представьте, что у меня есть две таблицы. первая — Film, а вторая — Store

в таблице store есть столбец store_id, а значение внутри store_id равно 1 и 2. в таблице Film есть title_name фильмов.

мой вопрос заключается в том, чтобы объединить две таблицы и отобразить название фильма только в хранилище 1 .. если фильм, который в хранилище 1, также находится в хранилище 2, тогда он не должен отображаться в хранилище 1

пример

если фильм (туман) находится в хранилище 1, а не в хранилище 2, тогда отобразите его, но фильм (туман находится в хранилище 1 и в хранилище 2, тогда не отображайте его

здесь актуальный вопрос с уточнением и, если возможно, с запросом в postgresql

Перечислите 100 лучших фильмов, взятых напрокат (по количеству раз, когда они были взяты напрокат) из store1, которые не входят в 100 лучших фильмов, взятых напрокат в store2. Ваш запрос должен сгенерировать заголовок одного столбца, содержащий список фильмов, которые соответствуют заданным условиям.

УТОЧНЕНИЕ:

Выберите 100 лучших фильмов из хранилища 1 и УДАЛИТЕ фильмы, которые также находятся в хранилище 2, в результате чего результат будет меньше 100. Вы должны дополнительно упорядочить оба списка в алфавитном порядке, чтобы гарантировать, что вы всегда получаете один и тот же результат. Порядок конечного результата не имеет значения.

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

1. Подсказки — EXCEPT или NOT СУЩЕСТВУЕТ или ОТСУТСТВУЕТ. И сделайте свою домашнюю работу. Вы не научитесь, если попросите других дать вам ответы.

Ответ №1:

 SELECT TOP 100 st1.title_name
FROM (store1 st1 ORDER BY st1.nr_times_rented DESC)
EXCEPT 
SELECT TOP 100 st2.title_name 
FROM (store2 st2 
ORDER BY nr_times_rented DESC)
  

или

 SELECT TOP 100 st1.title_name
FROM store1 st1
WHERE s1.title_name NOT IN (SELECT TOP 100 st2.title_name 
                              FROM store2 st2 
                             ORDER BY nr_times_rented DESC)
ORDER BY st1.nr_times_rented DESC
  

Читайте здесь, КРОМЕ