我无法让这个复杂的选择为我工作。
这是我的结构图。 http://www.bandwise.com/files/tester_db.png
结构和样本数据的 SQL 文件。 http://www.bandwise.com/files/tester_db.sql
简单地说,我有一张叫做“租约”的桌子和一张叫做“公寓”的桌子。租赁和公寓之间存在一对多的关系。公寓标识了它们所属的美国州和县。因此,一个给定的租约可能有许多分散在全国各地的公寓。
我需要做的是仅选择包含一个或多个公寓的美国州,并返回申请租约的数量。由于某些租约可能在多个州拥有公寓,因此可能需要将多个州的租约计算在内。
这是我正在使用的测试查询。
SET @timenow = 1360855314;
SELECT l.lid, c.aid, c.leaseid, c.serialnum, c.state, c.county
FROM leases l, apartments c
WHERE c.leaseid = l.lid
AND l.closebidding > @timenow AND l.status = 1;
我可以在这里看到我在状态 #1(德克萨斯州)有 6 个租约,在状态 #2(路易斯安那州)有 2 个租约。如何从 states 表向外查询以根据他们的公寓所在的位置获取租约数量?
返回应该是这样的。
---------------------------
| state | total |
---------------------------
| Texas | 6 |
---------------------------
| Louisiana | 3 |
---------------------------