首页 > 解决方案 > 在 MySql 的其他列中使用新的派生列值

问题描述

我有一个包含许多连接的查询,并且有一种情况是我必须在另一个计算列中使用 CASE 结果值。但我不想使用任何嵌套查询有什么可以实现这一点吗?

也许我可以通过使用以下查询 Ex 更好地解释:

SELECT 
    CASE 
        WHEN extras.is_doubled THEN 2 
        WHEN extras.is_normal 1 
        ELSE 0.5 
    END as multiplier, 
    life x multiplier, 
    score x multiplier
FROM 
    table 
inner join 
    ... 
inner join 
    ...
inner join

标签: mysqlsql

解决方案


您的查询应如下所示:

SELECT 
    A.*,
    A.life * A.multiplier, 
    A.score * A.multiplier
FROM (
    SELECT 
        *,
        CASE 
            WHEN extras.is_doubled THEN 2 
            WHEN extras.is_normal THEN 1 
            ELSE 0.5 
        END as multiplier, 
    FROM 
        table 
    inner join 
        ... 
    inner join 
        ...
    inner join
) A;

推荐阅读