0

MySql に 3 つのテーブルがあります。表 1 には次のフィールドがあります。

表1:

EventType
-etid
-description

表 2:

EventAsks
-etid
-qid

表 3:

Questions
-qid
-textofquestion

特定の etid があり、イベントが要求するすべての質問を見つけたい場合。したがって、次の表が与えられます...

EventType
etid     description
1        hiking
2        biking


EventAsks
etid      qid
1         1
1         3
2         2
2         3

Questions
qid   textofquestion
1     Is it fun?
2     Is it lots of exercise
3     Is it expensive

したがって、与えられた etid の結果は etid=1 であり、etid=1 に関連付けられた質問が返されることを望みます...

Result
Is it fun?
Is it expensive?

これは結合に関係していると確信していますが、正確な方法がわかりませんか? 助言がありますか?

4

2 に答える 2

3

従来のn対nの関係:

SELECT Questions.textofquestion FROM EventType
LEFT JOIN EventAsks ON EventAsks.etid = EventType.etid
LEFT JOIN Questions ON Questions.quid = EventAsks.qid
WHERE EventType.etid = 1;
于 2013-02-28T01:55:07.980 に答える
2

できるよ:

SELECT Questions.textofquestion
FROM EventType
   INNER JOIN EventAsks 
        ON EventType.etid = EventAsks.etid
   INNER JOIN Questions 
        ON EventAsks.qid = Questions.qid
WHERE EventType.etid = 1

あなたはすでにetid=1yuouを持っているので、次のように単純化することができます:

SELECT Questions.textofquestion
FROM EventAsks 
   INNER JOIN Questions 
        ON EventAsks.qid = Questions.qid
WHERE EventAsks.etid = 1
于 2013-02-28T01:56:17.913 に答える