SQL查询数据库中的多个表

SQL查询数据库中的多个表,sql,database,Sql,Database,我需要从数据库中查询3个表。 表Client包括客户端id号和客户端名称。 表属性包括属性id号和属性名称等。 表ClientsInTerestdinProperties包括客户端id号、属性id号和访问属性的日期 我想列出对某一特定房产感兴趣的客户的姓名(姓名,而不是id号)以及他们访问该房产的日期 例如,假设该房产名为巴克大厅,谁对它感兴趣,他们什么时候来过 有人能帮忙吗?您需要的是中的子句: SELECT * FROM Client WHERE ClientId IN (SELECT Cl

我需要从数据库中查询3个表。 表Client包括客户端id号和客户端名称。 表属性包括属性id号和属性名称等。 表ClientsInTerestdinProperties包括客户端id号、属性id号和访问属性的日期

我想列出对某一特定房产感兴趣的客户的姓名(姓名,而不是id号)以及他们访问该房产的日期

例如,假设该房产名为巴克大厅,谁对它感兴趣,他们什么时候来过


有人能帮忙吗?

您需要的是
中的
子句:

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

首先,在您的from表中使用主筛选条件。因此,您必须从
选择来自属性

然后将访问连接到属性。它将为每次访问生成不同的行,
左加入以访问酒店

然后我们需要获得易于阅读的客户机名称,而不是ID,所以我们需要
左连接以获取客户端名称

并且可以使用
其中子句(或内部连接),如访问期间。

您案例的SQL示例(我不知道您的表/列名)


干杯

查找JOIN语句。A将很方便地向我们展示您试图实现的目标。为什么您将最常用的筛选条件、表属性上的筛选条件放在最后?这是一个巨大的速度冲击。
 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'