MySQL select replace-使用手动值而不是联合查找表

MySQL select replace-使用手动值而不是联合查找表,mysql,Mysql,我将这3个表组合到一个带有内部联接的报表查询中(这是一个简化的示例): 查询结果如下所示: NAME INTEREST PREPARED James maybe novice Bob not interested prepared 我想去掉查找表,只使用USERS表和一些巧妙的REPLACE()语句创建这个查询结果。能做到吗 谢谢大家! 当然,但我看不出重点 SELECT u.Name, c1.Value, c2.Val

我将这3个表组合到一个带有内部联接的报表查询中(这是一个简化的示例):

查询结果如下所示:

NAME     INTEREST          PREPARED
James    maybe             novice
Bob      not interested    prepared
我想去掉查找表,只使用USERS表和一些巧妙的REPLACE()语句创建这个查询结果。能做到吗


谢谢大家!

当然,但我看不出重点

SELECT  u.Name, c1.Value, c2.Value
FROM    dbo.Users u
        INNER JOIN (
          SELECT 'c1_1' as Code1, 'interested' as Value
          UNION ALL SELECT 'c1_2', 'maybe'
          UNION ALL SELECT 'c1_3', 'not interested'
        ) c1 ON c1.Code1 = u.Code1
        INNER JOIN (
          SELECT 'c2_1' as Code1, 'prepared' as Value
          UNION ALL SELECT 'c2_2', 'self-study'
          UNION ALL SELECT 'c2_3', 'novice'
        ) c2 ON c2.Code1 = u.Code2

注:我知道(很可能)这不是你的意思,但我的客户估计它总是优于任何替换解决方案,而且更灵活。

当然,但我不明白这一点

SELECT  u.Name, c1.Value, c2.Value
FROM    dbo.Users u
        INNER JOIN (
          SELECT 'c1_1' as Code1, 'interested' as Value
          UNION ALL SELECT 'c1_2', 'maybe'
          UNION ALL SELECT 'c1_3', 'not interested'
        ) c1 ON c1.Code1 = u.Code1
        INNER JOIN (
          SELECT 'c2_1' as Code1, 'prepared' as Value
          UNION ALL SELECT 'c2_2', 'self-study'
          UNION ALL SELECT 'c2_3', 'novice'
        ) c2 ON c2.Code1 = u.Code2

另外,我知道(很可能)这不是你的意思,但我的客户估计它总是优于任何替换解决方案,而且更灵活。

这正是我所需要的!我认为替换是唯一的选择,但这更好。我之所以需要它,是因为我有几十个像C1、C2这样的表,而且它们只需要一个select查询就可以将代码转换为人类可读的值。这些表只是挤满了数据库,现在我不再需要它们了。非常感谢!这正是我所需要的!我认为替换是唯一的选择,但这更好。我之所以需要它,是因为我有几十个像C1、C2这样的表,而且它们只需要一个select查询就可以将代码转换为人类可读的值。这些表只是挤满了数据库,现在我不再需要它们了。非常感谢!