分组并获得表中的价值

时间:2014-03-12 15:47:05

标签: mysql sql row

我有2张桌子

用户

----------------
user_id | name
----------------
   33   | jon
   35   | igor 
   40   | mark

事件

-----------------------------------
event_id | user_id | lavel | value
-----------------------------------
    1    |    33   | status|   1
    2    |    33   | ins   |   alfa
    3    |    33   | time  |   14:30
    4    |    35   | status|   0
    5    |    35   | ins   |   beta
    6    |    35   | time  |   14:51
    7    |    40   | ins   |   beta

预期的查询结果

------------------------
user_id | name | status
------------------------
   33   | jon  |   1
   35   | igor |   0
   40   | mark |

我想要表中的用户及其状态。

状态是管理字段。不能。

任何人都可以帮助查询吗?

2 个答案:

答案 0 :(得分:2)

SELECT u.user_id, u.name, 
CASE WHEN e.value IS NULL THEN '' ELSE e.value AS status
FROM users u
LEFT JOIN event e ON e.user_id = u.user_id
WHERE e.lavel = 'status'

如果可以的话,如果您的列标题是这样的话,它似乎会更易于管理:

-----------------------------------------
event_id | user_id | status | ins | time
-----------------------------------------

答案 1 :(得分:0)

试试这个语法:

    select 
    user.id,
    user.name,
    event.value 
    from user inner join event 
    on user.id=ever.user_id 
   WHERE event.lavel = 'status';