这不起作用,我还能如何构造此查询? 根据 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
最佳答案
在 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
关于Mysql在案例内部加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34556666/