2017-04-03 9 views
0

私はデータベースを作成していますが、3つのテーブルがあります。ボランティアテーブルとイベントテーブル。私は、各表には多くのrelationship.Theフィールドに多くの結果であったEventVolunteerテーブルを作成:SQLがクエリとスタックする

イベント表

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とすべてのvolunteerids

が表示されているいくつかのボランティアは、フィールドがyesに設定されており、一部はnoに設定されているFirst_Aid。私は応急処置を持っているイベントであるすべてのボランティアを表示するクエリを必要とする

、応急処置の値は、yesまたはnoのいずれかに設定されています。

+0

私は '' EventTable'、ない 'VolunteerTable'の属性が右、first_aid'あると思うだろうか? –

答えて

0

あなたの質問は少しあいまいです。私の前提は以下の通りです:応急処置スキルを持つボランティア(Volunteer.First_Aid = yesの場合)のリストを取得し、イベントに登録したいと考えています。ボランティアの詳細と登録したイベントを返してほしい。次のクエリを使用することができます。

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' 

異なる結果が得られた場合は、詳細を追加してください。

マリウスはあなたの条件「...最初の助けを借りて、イベントである」に基づき

+0

こんにちはマリウスは、私のwhere句以外にも、なぜ、First_Aidのデータ型は、varchar(3)とそのいずれかのはいまたはいいえ、それは動作していないように見えます私は大文字と小文字を区別していたのでしょうか?ありがとうございました! –

+0

Hmmm。わからない。大文字と小文字の区別が問題ではないことを確認するために、where節をUPPER(v.First_Aid)= 'Yes'に置き換えてみてください。うまくいかない場合、出力のサンプルを添付してください。それが助けになるかもしれない。 – Marius

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' 
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 
関連する問題