SQL: нужна помощь в создании сравнительного запроса «один ко многим» - PullRequest
0 голосов
/ 23 сентября 2010

Параметры таковы:

  1. У меня есть таблица Tasks с идентификатором столбцов (первичный ключ) и меткой (текст).
  2. У меня есть еще одна таблица под названием Locations с внешним ключом, ссылающимся на идентификатор задачи и имя местоположения (текст).
  3. В моем коде у меня есть набор местоположений.
  4. ОБНОВЛЕНО: мне нужен запрос, чтобы вернуть все задачи, связанные с которыми находятся в моем наборе. Каждое задание, с которым связано местоположение, не найденное в моем наборе, должно быть выброшено.

Какой лучший способ сделать это?

1 Ответ

0 голосов
/ 23 сентября 2010

Для измененного требования:

select * from tasks t
where exists (select null from locations l
              where t.id = l.task_id and l.name in ('London', 'Geneva'...)) and
  not exists (select null from locations l
              where t.id = l.task_id and l.name not in ('London', 'Geneva'...))
...