假设我有以下架构
Company:
-> company_id
-> company_name
Building_to_company:
-> building_id
-> company_id
因此,每个建筑物都有自己的 ID 以及将其与单个公司相关联的公司 ID。
下面的查询给出了两列——一列是公司名称,然后是关联的建筑物。
SELECT company.company_name, building_to_company.building_id
FROM company, building_to_company
WHERE company.company_id = building_to_company.company_id;
返回的表看起来像这样:
Company Name | Building Id
Smith Banking 2001
Smith Banking 0034
Smith Banking 0101
Smith Banking 4055
Reynolds 8191
TradeCo 7119
TradeCo 8510
所以这一切都很简单。
但我需要做一些不同的事情。我需要 2 列。一个是公司名称,右边是它拥有的建筑物的数量。然后为了一点额外的挑战,我只想列出拥有 3 座或更少建筑物的公司。
在这一点上,我取得的唯一真正进展是提出了上面的查询。我知道我必须在 building_id 列上使用 count 并计算与每个公司关联的建筑物的数量。然后到那时我可以通过使用类似的东西来限制事情WHERE x < 4