首页 > 解决方案 > MySQL Join 有几个 CASE WHEN

问题描述

我需要一些有关 MySQL 的帮助,我想在其中加入 CASE WHEN。我从下面的语句中得到 3 列。

我想从表 Customer.name 中添加,所以我得到了带有客户名称的第四列。表 CustomerCategory 具有来自 Customer.CustomerID 的外键和 ID
此外,每个客户都有一个 ID,但不需要 CustomerCode,存在 null。尝试了许多版本的加入,但......

SELECT
(CASE WHEN CustomerCategory.CustomerCode = "CUST01" THEN "Distributor" ELSE " " END ) AS Distributor,
(CASE   when when CustomerCategory.CustomerCode = "CUST02" THEN "Retail" ELSE " " END ) AS Retail,  
(CASE WHEN CustomerCategory.CustomerCode = "CUST03" THEN "Enduser"   ELSE " " END ) AS Enduser
from CustomerCategory

标签: mysql

解决方案


你应该使用 JOIN

SELECT
   CASE WHEN CustomerCategory.CustomerCode = "CUST01" THEN "Distributor" ELSE " " END  AS Distributor
 , CASE WHEN CustomerCategory.CustomerCode = "CUST02" THEN "Retail" ELSE " " END  AS Retail
 , CASE WHEN CustomerCategory.CustomerCode = "CUST03" THEN "Enduser"   ELSE " " END  AS Enduser
 , Customer Name
from CustomerCategory
INNER  JOIN  Customer ON Customer.ID  = CustomerCategory.CustomerID

推荐阅读