Mysql在案例内部加入

标签 mysql sql select join case

这不起作用,我还能如何构造此查询? 根据 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/

相关文章:

我的选择表单中的 Javascript 不适用于文本区域字段

html - 有没有办法在 css 中选择一个打开的选择框?

php - 什么是从 mysql 查询返回多行的 PHP 函数?

mysql - CASE WHEN 在 magento getCollection 中

MySQL表之间的多个引用

php文件路径/文件扩展名未保存到sql中的数据库

mysql - MySQL 中何时使用单引号、双引号和反引号

php - 如何将uuid与表连接起来命名

MySQL查询帮助SELECT JOIN

MYSQL统计同一个表中某个问题的答案数