我有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 |
我想要表中的用户及其状态。
状态是管理字段。不能。
任何人都可以帮助查询吗?
答案 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';