2013-07-29 81 views
1

我似乎有一些问题让我的多左连接给我正确的结果,它给了我的编号只是罚款但是我似乎无法得到链接给我的结果问题,而不是ID。MySQL中的多个左连接

下面的代码。

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的其他表中的数字值。

+0

你得有'q.question_text'或任何字段名称是...如果你不要在select的字段列表中列出字段,或者选择*,数据库不会给你任何不需要的字段。 –

回答

2

你需要加入到question表三次,一次为每个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 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' 
+0

错误:不是唯一表/别名:'q3' –

+0

这只是一个错字。 – GolezTrol

+0

谢谢非常多!作品一种享受! –