2016-11-24 75 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,对不起。 再次感谢! –