Mysql中的case语句内连接

3
这不起作用,还有其他方法可以构建这个查询吗? 根据debtor_user_type字段的值,我需要连接适当的表。
SELECT * FROM invoice_headers

CASE 
WHEN invoice_headers.debtor_user_type = 0 
THEN

LEFT JOIN user_info 
ON invoice_headers.debtor_id = user_info.user_id    

ELSE

LEFT JOIN company_info 
ON invoice_headers.debtor_id = company_info.company_id    

END
1个回答

3

在ON条件中使用LEFT OUTER JOIN

尝试这样做:

SELECT * 
FROM invoice_headers A 
LEFT OUTER JOIN user_info B ON A.debtor_id = B.user_id AND A.debtor_user_type = 0 
LEFT OUTER JOIN company_info C ON A.debtor_id = C.company_id AND A.debtor_user_type <> 0 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接