查询限制

时间:2012-09-15 17:15:18

标签: sql sql-server

有人可以告诉我这段代码有什么问题。 基本上我要做的是根据他们的ID而不是名字来识别租房者(如果有更多同名租房者)。谢谢

SELECT DISTINCT P.PROPERTYId, P.PROPERTYName, T.TYPEName 
FROM RENTAL R, PROPERTY P, TYPE T
Group by P.PROPERTYId, P.PROPERTYName, T.TYPEName 
HAVING RENTERId = (SELECT RENTERId FROM RENTER
WHERE RENTERFirstName = 'AL'
AND RENTERLastName = 'SMITH')
AND R.PROPERTYId = P.PROPERTYId
AND P.TYPEId = T.TYPEId
AND T.TYPEName = 'VILLA';

2 个答案:

答案 0 :(得分:2)

试试这个。

SELECT DISTINCT 
     Renter.RenterID, 
     Property.PropertyId, 
     Property.PropertyName, 
     Type.TYPEName  
FROM Rental
    inner join Property on Rental.PropertyID = Property.PropertyID
    inner join Type on Property.TypeID = Type.TypeID
    inner join Renter on Rental.RenterID = Renter.RenterID
where Type.TypeName = 'villa'
and Renter.RenterFirstName = 'al'
and Renter.RenterLastName = 'smith'

注意如何使用join语法链接表,并保留where子句用于过滤。

答案 1 :(得分:0)

试试吧。替换= IN。