2016-02-29 42 views
0

,如:在MySQL中是有可能写出加入取决于如果条件

SELECT * FROM (`expenditures`) 
JOIN `categories` 
ON `categories`.`cat_id` = `expenditures`.`cat_id` IF(`projects`.`project_id` ! = 0) 
JOIN `projects` 
ON `projects`.`project_id` = `expenditures`.`project_id` 
WHERE `expenditure_id` = $expenditure_id 
+1

的可能的复制[如何使用IF语句一个MySQL连接查询?](http://stackoverflow.com/questions/10064183/how-do-i-use-an-if-statement-in-an-mysql-join-query) –

+0

不,这是不可能的。你究竟想要完成什么? – shmosel

回答

0

你可以试试这个:

SELECT * FROM (`expenditures`) 
JOIN `categories` 
ON `categories`.`cat_id` = `expenditures`.`cat_id` 
JOIN `projects` 
ON `projects`.`project_id` = `expenditures`.`project_id` and `projects`.`project_id` ! = 0 
WHERE `expenditure_id` = $expenditure_id 
0
SELECT * FROM (`expenditures`) 
JOIN `categories` 
ON `categories`.`cat_id` = `expenditures`.`cat_id` 
JOIN `projects` 
ON `projects`.`project_id` = `expenditures`.`project_id` and `projects`.`project_id` <> 0 
WHERE `expenditure_id` = $expenditure_id