1

正しい結果を得るために複数の左結合を取得する際に問題が発生しているようです.IDは問題ありませんが、IDの代わりに結果の質問を表示するためのリンクを取得できないようです.

以下のコード。

SELECT 
  a.id as id,
  a.clientid as clientid,
  a.comp_id as compid,
  a.title as title,
  a.firstname as firstname,
  a.lastname as lastname,
  a.countrycode as countrycode,
  a.mobile as mobile,

  a.question1_answer as question1_answer,
  a.question2_answer as question2_answer,
  a.question3_answer as question3_answer,

  a.timestamp as timestamp, 
  b.comp_name as comp_name,
  b.comp_id as comp_id,

  a.question1 as question1,
  a.question2 as question2,
  a.question3 as question3

FROM 
  competition_entries AS a 
LEFT JOIN
  competition as b
ON 
  a.comp_id = b.id
LEFT JOIN
  questions as q
ON 
  a.question1 = q.question_id 
AND
  a.question2 = q.question_id
AND
  a.question3 = q.question_id   
WHERE 
a.comp_id = '$download_id' 

ただし、質問1/質問2/質問3を呼び出すたびに、表示される結果は、他のテーブル内のIDに対応する数値のみです。

4

1 に答える 1

2

question持っている ID ごとに 1 回ずつ、テーブルに 3 回参加する必要があります。

SELECT a.id as id, a.clientid as clientid, a.comp_id as compid, a.title as title,
       a.firstname as firstname, a.lastname as lastname, a.countrycode as countrycode,
       a.mobile as mobile,
       a.question1_answer as question1_answer,
       a.question2_answer as question2_answer,
       a.question3_answer as question3_answer,
       a.timestamp as timestamp, 
       b.comp_name as comp_name,
       b.comp_id as comp_id,  
       a.question1 as question1id,
       a.question2 as question2id,
       a.question3 as question3id,
       q1.question as question1,
       q2.question as question2,
       q3.question as question3

FROM competition_entries a LEFT JOIN
     competition as b
     ON a.comp_id = b.id LEFT JOIN
     questions as q1
     ON a.question1 = q1.question_id left join
     questions q2
     on a.question2 = q2.question_id left join
     questions q3
     on a.question3 = q3.question_id   
WHERE a.comp_id = '$download_id' 
于 2013-07-29T18:33:09.927 に答える