MySQL:查询用户ID是否包含诸如动作

时间:2017-01-04 06:07:20

标签: mysql

以下是一个示例表:

userid, action

123, play
123, purchase,
345, login
123, level_up
456, sign_out

我如何查询具有action ='play'和action ='level_up'的用户ID?

我想要打印类似

的内容
123, play
123, purchase, 
123, level_up 

这是我的结束:

SELECT DISTINCT userid
FROM sampleTable
WHERE action IN ('purchase', 'level_up')

4 个答案:

答案 0 :(得分:2)

{{1}}

选择值为“play:first first to the trick

的动作的id

答案 1 :(得分:1)

SELECT * 
FROM SampleTable
WHERE userid IN
    (SELECT userid
     FROM SampleTable
     WHERE action='play')
ORDER BY userid, action;

答案 2 :(得分:1)

SELECT userid,action
FROM sampleTable
WHERE action IN ('play', 'level_up')

只是它应该有用。

购买行动 -

SELECT userid,action
FROM sampleTable
WHERE action IN ('play', 'level_up', 'purchase')

答案 3 :(得分:1)

我误解了这个问题,但现在我已经重新阅读了它,我认为这更接近标记......

SELECT t.userid, t.action, t2.action
FROM SampleTable t
JOIN SampleTable t2 ON t.userid=t2.userid
WHERE t.action='play' AND t2.action='level_up'
ORDER BY t.userid;

这将显示同时具有'play'动作和'level_up'动作的用户ID。

相关问题