我有一个数据库MySQL的免费获得点查询
帐篷(ID,numberOfSpots)
人(ID,姓名,tentId)
帐篷
以下结构+----+---------------+
| id | numberOfSpots |
+----+---------------+
| 1 | 5 |
| 2 | 3 |
| | |
+----+---------------+
人
+----+----------+--------+
| id | name | tentId |
+----+----------+--------+
| 1 | Simon | 1 |
| 2 | Jasmin | 1 |
| 3 | Markus | 1 |
| 4 | Romy | 1 |
| 5 | Fabrizia | 1 |
| | | |
+----+----------+--------+
查询
我想查询时,得到它有一个可用的自由现货下一tentId。 因此,对于上面的示例数据,它将是tentId = 2
。如果将少了一个人,那将是我来tentId = 1
了这样的事情:
select t.Id
from Tent as t
left join (
select p.tentId, count(*) as occupiedSpots
from person as p
group by p.tentId) as i ON i.tentId = t.id
where z.numberOfSpots > i.occupiedSpots
,但我没有得到结果......
什么时我做错了?
在此先感谢
真的,你想要第一个tentid,不是在Person中存在,而是在Tent中? – splash58
我想要的第一个tentid与* numberOfSpots的关系比人少* – xeraphim
@xeraphim谁是z作为别名? – Cosmin