2016-11-24 76 views
1
SELECT a.cp_node_id, 
     a.cmi_node_id, 
     a.user_id, 
     a.learner_name, 
     a.completion_status, 
     a.success_status, 
     b.id title, 
     c.dep, 
     d.field_id, 
     d.value 
     FROM cmi_node a 
JOIN cmi_objective b 
    ON a.cmi_node_id=b.cmi_node_id 
AND a.completion_status = 'completed' 
AND a.success_status = 'passed' 
AND a.cp_node_id = '1' 
JOIN usr_data c 
    ON a.user_id = c.usr_id 
JOIN udf_text d 
    ON a.user_id = d.usr_id 
GROUP BY a.cmi_node_id 

以我「d」表我有一列,有兩個結果,例如:SQL(JOIN) - 兩個結果從一列到兩個列

ID: field_id: value: 
1 1   test 
1 2   text2 
2 1   test 
2 2   text3 
3 1   test2 
3 2   text6 
etc... 

在field_in始終是1或2.

我需要從 「cmi_node」 打印我的所有用戶,例如:

user_id learner_name 
1  George 
2  Michel 
3  James 

我想從 「d」 表中添加兩個列: 例如:

user_id learner_name field_in_first field_in_second value_first value_second 
1  George  1    2    test  text2 
2  Michel  1    2    test  text3 
3  James   1    2    test2  text6 

謝謝

+2

MySQL或SQL服務器? – Jens

+0

它的mysql ............ –

回答

1

剛剛加入同一個表兩次。

JOIN udf_text d1 ON a.user_id = d.usr_id AND field_id = 1 
JOIN udf_text d2 ON a.user_id = d.usr_id AND field_id = 2 

,那麼你可以訪問d1.field_id,d2.field_id,d1.value和d2.value

+0

謝謝!是工作! –

+0

很酷,請將答案標記爲已接受 – fafl

+0

我不行,我的名聲小於15,對不起。 再次感謝! –