MySql,将变量赋给不存在的字段(将值硬编码为列值)

时间:2016-04-27 16:39:00

标签: mysql

我不确定这是否可行,但例如在这种情况下:

SELECT 
  i.name 
FROM
  items i 
  INNER JOIN users u 
    ON u.item_id = i.id 
  INNER JOIN sales s 
    ON s.item_id = i.id 
WHERE u.status = 1 
  AND s.status = 1 

我想将非现有字段分配给“type”,因此如果记录属于“users”表,则type = Users,otherwize type = Sales。

它应该看起来像:

|        name | type  |
|-------------|-------|
|  First Item | User  |
| Second Item | Sales |
| Second Item | User  |

1 个答案:

答案 0 :(得分:4)

我认为这可能是你想要做的事情。

SELECT i.name,'User' as type FROM items i 
    INNER JOIN users u ON u.item_id = i.id WHERE u.status = 1
UNION
SELECT i.name,'Sales' as type FROM items i 
    INNER JOIN sales s ON s.item_id = i.id WHERE s.status = 1 

http://sqlfiddle.com/#!9/c81bf/2

内部加入项目与用户和硬编码'用户'作为类型

内部加入具有销售和硬编码的项目'销售'作为类型

然后UNION 2一起选择。