SQL陷入查询

时间:2017-04-03 22:06:18

标签: mysql sql

我正在创建一个数据库,我有3个表。志愿者表和事件表。我创建了一个EventVolunteer表,它是多对多关系的结果。每个表中的字段是:

活动表

Event 
EventID 
Event_Name 
Event_Location 
Starting_Point 
Ending_Point 

志愿者表

Volunteer 
VolunteerID 
Volunteer_FName 
Volunteer_LName 
Volunteer_Age 
Volunteer_Email_Address 
First_Aid

EventVolunteer表

EventVolunteer
EventID
Volunteer ID

eventVolunteer目前正在显示所有活动ID和所有志愿者

一些志愿者First_Aid字段设置为yes,一些设置为no。

我需要一个查询,显示所有有急救事件的志愿者,急救值设置为是或否。

3 个答案:

答案 0 :(得分:0)

首先,您需要连接表,然后使用WHERE子句来查找值。

您可以将*替换为您想要的字段

SELECT * 
FROM EventVolunteer AS ev
INNER JOIN Event AS e
    ON ev.EventID = e.EventID
INNER JOIN Volunteer AS v
    ON ev.VolunteerID = v.VolunteerID
WHERE v.First_Aid = 'yes'

答案 1 :(得分:0)

试试这个:

select * from volunteer t
join event_volunteer t2 on t.volunteer_id=t2.volunteer_id
where t.first_aid = true //if it's boolean

答案 2 :(得分:0)

你的问题有点模糊。我的假设如下:您想获得所有具有急救技能的志愿者名单(Volunteer.First_Aid =是)并已注册参加活动。您想要返回志愿者详细信息以及他们注册的活动。您可以使用以下查询:

SELECT v.*, e.*
FROM
    Volunteer v
    INNER JOIN EventVolunteer ev
        ON v.Volunteer_ID = ev.Volunteer_ID
    INNER JOIN Event e
        ON ev.EventID = e.EventID
WHERE
    v.First_Aid = 'Yes'

如果您有不同的结果,请在问题中添加更多详细信息。

的Marius