2016-10-04 2 views
0

왼쪽 조인 집합 안에 사례가 생기는 것은이 질문에 답한 후 더 이상 짜증이 없습니다!LEFT JOIN 구문의 사례 조건

그러나 내가 쿼리의 다음과 같은 평화가이 경우를 문 앞에 구문 오류를 제공하는 경우 문을 적용 할 올바른 apparoache입니다했다 (마지막 괄호) 없음이 좋지 않다 닫는 괄호

from((((((`tbl_workflow_step_item` 
LEFT JOIN `tbl_workflow_step_users` ON ((`tbl_workflow_step_item`.`step_id` = `tbl_workflow_step_users`.`step_id`))) 
LEFT JOIN `tbl_workflow_steps` ON ((`tbl_workflow_step_item`.`step_id` = `tbl_workflow_steps`.`step_id`))) 
LEFT JOIN `tbl_workflow_user_assigned` ON ((`tbl_workflow_step_users`.`user_id` = `tbl_workflow_user_assigned`.`user_id`))) 
LEFT JOIN `tbl_workflow` ON ((`tbl_workflow`.`workflow_id` = `tbl_workflow_steps`.`workflow_id`))) 
LEFT JOIN `tbl_report_type` ON ((`tbl_report_type`.`type_id` = `tbl_workflow_step_item`.`type`))) 
case 
when (`tbl_workflow`.`type` = 2) 
then 
left join `tbl_report_file` on ((`tbl_report_file`.`file_id`=`tbl_workflow_step_item`.`target_item_id`))) 
else 
LEFT JOIN `tbl_blog` ON ((`tbl_blog`.`blog_id` = `tbl_workflow_step_item`.`target_item_id`))) 
+0

당신은 그렇게 할 수 없습니다 - 그건 의미가 없습니다. 생각해 보면 반환 된 행은'case' 연산자의 결과에 따라 다른 스키마를가집니다. – Phylogenesis

답변

0

누락하지 말 . Case/when 문은 JOIN 부분에서 사용할 수 없습니다. 여기에해야 할 일이 있습니다 :

SELECT 
CASE 
    WHEN(`tbl_workflow`.`type` = 2) 
     THEN `tbl_report_file`.YOURFIELDHERE 
    ELSE 
    `tbl_blog`.YOURFIELDHERE 
END AS theAliasYouWant 
FROM((((((`tbl_workflow_step_item` 
LEFT JOIN `tbl_workflow_step_users` ON ((`tbl_workflow_step_item`.`step_id` = `tbl_workflow_step_users`.`step_id`))) 
LEFT JOIN `tbl_workflow_steps` ON ((`tbl_workflow_step_item`.`step_id` = `tbl_workflow_steps`.`step_id`))) 
LEFT JOIN `tbl_workflow_user_assigned` ON ((`tbl_workflow_step_users`.`user_id` = `tbl_workflow_user_assigned`.`user_id`))) 
LEFT JOIN `tbl_workflow` ON ((`tbl_workflow`.`workflow_id` = `tbl_workflow_steps`.`workflow_id`))) 
LEFT JOIN `tbl_report_type` ON ((`tbl_report_type`.`type_id` = `tbl_workflow_step_item`.`type`))) 
LEFT JOIN `tbl_report_file` on ((`tbl_report_file`.`file_id`=`tbl_workflow_step_item`.`target_item_id`))) 
LEFT JOIN `tbl_blog` ON ((`tbl_blog`.`blog_id` = `tbl_workflow_step_item`.`target_item_id`)))