我想为特定事件生成一个类似的列表,其中当前注册的志愿者人数低于所需的数量。我使用的MySQL:使用子查询的SQL
Volunteer Role
==============
Stewarding
Video
我的表(急救不会因为已经有2人签署了这支球队出现)是:
Delegate
========
OrderId Name volunteerOption
1 Tim
1 Jane First Aid
1 Mary First Aid
1 Jo Stearding
VolunteerRole
===========
eventId volunteerName quantityNeeded
1 First Aid 2
1 Stewarding 10
Orders
======
Id eventId
1 1
Event
=====
id name
1 Fun Run
我想我需要使用加入的子查询,但我不知道如何链接它们。
这两个查询我的是:
SELECT roleName, quantity as size
FROM VolunteerRole
WHERE eventId = 1
这给了我,给了我的志愿者在各队目前的量的队名和最大尺寸
SELECT DISTINCT count(volunteerOption) as volunteers, volunteerOption
FROM delegate
JOIN orders on delegate.orderId = orders.id
WHERE orders.eventId = 1 and volunteerOption <> ''
GROUP BY volunteerOption
。我无法弄清楚的是如何只选择志愿者人数少于最大值的球队。
任何帮助感激收到
是'蒂姆'的意思是'videoer'的'volunteerOption'值? – toonice
每个'Event'都可以有很多'Order'吗? – toonice
由于GROUP BY不返回任何重复,因此无需执行SELECT DISTINCT。 – jarlh