2016-10-04 15 views
0

左の結合セットの中にCASEを入れることは、この質問に答えた後、もはや迷惑にならないでしょう!LEFT JOIN構文のCASE条件

しかし、私は、クエリの次の平和が、これは単にcase文の前に構文エラーを与えるcase文を適用する正しい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`)))