我想仅在此查询返回大于0时选择tblProperty.ID
SELECT
COUNT(tblProperty.ID) AS count
FROM
tblTenant AS tblTenant
INNER JOIN tblRentalUnit
ON tblTenant.UnitID = tblRentalUnit.ID
INNER JOIN tblProperty
ON tblTenant.PropertyID = tblProperty.ID
AND tblRentalUnit.PropertyID = tblProperty.ID
WHERE tblProperty.ID = x
其中x等于它正在查看的父级的tblProperty.ID。 我不知道'x'是什么。
我该怎么做?
Database Structure:
tblTenant:
ID
PropertyID <--foreign key to tblProperty
UnitID <--foreign key to tblRentalUnit
Other Data
tblProperty:
ID
Other Data
tblRentalUnit:
ID
PropertyID <--foreign key to tblProperty
Other Data
查询说明:
该查询仅选择具有租户的租赁单元的属性。
答案 0 :(得分:3)
SELECT
tblProperty.ID
FROM
tblTenant AS tblTenant
INNER JOIN tblRentalUnit AS tblRentalUnit
ON tblTenant.UnitID = tblRentalUnit.ID
INNER JOIN tblProperty AS tblProperty
ON tblTenant.PropertyID = tblProperty.ID
AND tblRentalUnit.PropertyID = tblProperty.ID
GROUP BY tblProperty.ID
HAVING COUNT(tblProperty.ID) > 1
应该工作。
答案 1 :(得分:2)
查询是:仅选择包含租户的租赁单元的属性。
SELECT
p.ID
FROM
tblProperty AS p
INNER JOIN tblRentalUnit AS u ON u.PropertyID = p.ID
INNER JOIN tblTenant AS t ON t.UnitID = u.ID
GROUP BY
p.ID
这应该这样做。显式不的内部联接选择任何未引用的记录,这意味着它仅选择具有租户的租赁单元的那些属性。
我不确定为什么tblTenant
链接到tblProperty
。看起来好像没有必要,因为链接似乎来自租户 - >租赁单位 - >属性。
答案 2 :(得分:1)
将以下内容添加到查询的末尾。这假设您不希望在计数为1或0时返回任何内容。
HAVING COUNT(tblProperty.ID) > 1
答案 3 :(得分:0)
答案 4 :(得分:0)
如何将开始更改为SELECT tblProperty.ID
并在结尾添加HAVING COUNT(tblProperty.ID) > 1
?虽然我承认我不理解你的AS
条款 - 但对我来说,它们似乎完全是多余的......每一个......
答案 5 :(得分:0)
实际上,这有效:
SELECT DISTINCT
p.ID
FROM tblProperty AS p LEFT OUTER JOIN
tblTenant AS t ON t.PropertyID = p.ID
WHERE (t.UnitID IS NOT NULL)