首页 > 解决方案 > 在MYSQL的case语句中使用多个条件

问题描述

我的目标是加入 Product_ID 上的用户和产品表。我在下面附上了用户表和产品表供您参考。

用户表: 用户表

在此处输入图像描述

产品表:产品表

在此处输入图像描述

product_ID 为 7时,我需要查看users表中的申请日期,并比较它是否在products表中的first_day_activelast_day_active范围内以获得佣金率。我使用了以下查询,但它似乎不起作用。有人可以帮忙吗?谢谢!

CASE

WHEN (users.product_ID = 7 AND users.application_date BETWEEN ('2017-04-01','2017-06-01')) THEN products.commission
WHEN (users.product_ID = 7 AND users.application_date BETWEEN ('2017-06-02','2017-09-01')) THEN products.commission
WHEN users.product_ID = 7 AND users.application_date > '2017-09-02' THEN products.commission
ELSE "Something Fishy" END AS TESTING

标签: mysqlcase

解决方案


示意图:

SELECT Users.Name, 
       Products.Product_name,
       Products.Comission
FROM Users
JOIN Products ON Users.Application_id = Products.Application_id
             AND Users.Application_Date BETWEEN Products.First_day
                                            AND COALESCE(Products.Last_day, Users.Application_Date)
WHERE products.Active = 0

推荐阅读