2013-12-09 3 views
0

Мне нужно запросить 3 таблицы из базы данных. Таблица Клиент включает идентификатор клиента no. и имя клиента. Таблица Свойство включает идентификатор свойства no. и имя свойства среди других вещей. Таблица clientInterestedInProperties включает идентификатор клиента no. Идентификатор объекта нет. и даты посещения имущества.SQL-запрос нескольких таблиц в базе данных

Я хочу указать имя клиентов, у которых есть интерес к определенному свойству (с именем, а не идентификатором нет) и датой, когда они посетили свойство.

Например, недвижимость называется Barker Hall, которая заинтересована в ней и когда они посещают?

Может ли кто-нибудь помочь?

+0

посмотреть инструкцию JOIN. –

+0

http://sqlfiddle.com/ было бы полезно показать нам, чего вы пытаетесь достичь. – KenD

ответ

0

Во-первых, используйте главное условие фильтрации в вашем из таблицы. Таким образом, вы должны начать с
выберите ... от собственности ...,

Затем подключите посещения собственности. Он будет генерировать другую строку для каждого визита, с
LEFT JOIN, чтобы посмотреть недвижимость в собственность

Тогда мы должны получить читаемо имена клиентов, а не идентификаторы, поэтому мы делаем
LEFT JOIN, чтобы получить имена клиентов

И некоторые дополнительные фильтры/условия могут быть добавлены с помощью
WHERE статьи (или INNER JOIN), такие как период посещения.

Пример SQL для вашего случая (я не знаю ваших таблиц/имена столбцов)

select PropertyName, ClientsInProp_VisitDate, ClientName 
from Property 
    left join ClientsInProp on ClientsInProp_Propertyid = Property_PropertyID 
    left join Client on Client_Clientid = ClientsInProp_ClientId 
where Proprty_Name = 'House 1' and ClientsInProp_VisitDate > '01.10.2013' 

Ура!

+0

спасибо, что сработало для меня: D – user3084433

0

То, что вы хотите, это IN пункт:

SELECT * FROM Client 
WHERE ClientId IN 
(SELECT ClientID 
FROM clientsInterestedInProperties cip 
INNER JOIN Property p 
    ON cip.PropertyID = p.PropertyID 
WHERE p.ProperyName = @propertyName) 
+0

Почему вы ставите свое самое фильтрующее условие, фильтруете свойство таблицы, ** last **? Это большое влияние скорости. – TPAKTOPA

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