0

有人可以告诉我这段代码有什么问题。基本上我要做的是根据他们的 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';
4

2 回答 2

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子句保留用于过滤。

于 2012-09-15T17:35:14.667 回答
0

试试看 。将 = 替换为 IN 。

于 2012-09-15T17:44:02.093 回答