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