2015-02-25 4 views
0

Таблицы:Проблемы с SQL-запросом - как найти ответ?

  • PERSON (ПЛА, имя)
  • Has_Visited (ПЛА, город)
  • Belongs_To (город, страна)

Основываясь на следующую информацию, создать этот вопрос:

Как называют людей, которые посетили город «Лондон»?

+1

Является ли это домашнее задание? (Важно дать правильные ответы.) Что вы пробовали? – Guffa

ответ

0
Select p.Name from person p,has_visited hs 
where p.ssn= hs.ssn and hs.city= 'LONDON' 
0

Просто используйте in оператор:

SELECT name 
FROM person 
WHERE ssn IN (SELECT ssn 
       FROM has_visited 
       WHERE city = 'London'); 
+0

Мне любопытно, почему вы предпочли это присоединиться? Это вопрос производительности или просто предпочтение? –

+1

Это вопрос читаемости - этот запрос заявляет, что он выбирает каждого человека (не более) один раз, а не некоторую комбинацию людей и посещений. Подумайте, будет ли схема распространяться на список **, если ** человек посетил город и разрешить несколько посещений. Запрос с использованием соединения будет возвращать этот человек дважды. Этот будет продолжать функционировать должным образом. – Mureinik

Смежные вопросы