mysql - 在 SQL 中确定具有 "missing"后续条目的条目

标签 mysql

我在 SQL 中有一个表,它表示某种事件。我尝试确定特定事件未被另一个特定事件“跟随”的所有行。 在下表中,这将是有人注册但之后没有注销的所有行(露西和乔)。这可以通过 SQL 实现吗?如果可以,如何实现?

|Id|Name      |Event     |
==========================
|01|Fred      |Sign up   |
-------------------------
|02|Joe       |Sign up   |
--------------------------
|03|Lucy      |Sign up   |
--------------------------
|04|Joe       |Do foo    |
--------------------------
|05|Joe       |Sign out  |
--------------------------
|06|Joe       |Sign up   |
--------------------------
|07|Fred      |Sign out  |
--------------------------

非常感谢

最佳答案

SELECT x.* 
  FROM events x 
  LEFT 
  JOIN events y 
    ON y.name = x.name 
   AND y.id > x.id 
   AND y.event ='sign out' 
 WHERE x.event = 'sign up' 
   AND y.id IS NULL;

或者类似的东西

关于mysql - 在 SQL 中确定具有 "missing"后续条目的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829643/

相关文章:

mysql - 如何使用 MySQL Workbench 知道表中有多少行或对象?

PHP-MySQL连接错误

mysql - Spring MVC Rest Web服务

python - 如何在 python 中使用日期范围在 mySQL 中拉取/查询数据

mysql - 将 sum() 函数放入 View 中

mysql - 跨两个表进行选择 - 不确定是加入还是合并?

php - 如何在foreach中插入多条记录

未在 ubuntu 14.04 上安装 mysql gem for rails

php - Magento group by 日期字段的子句

php - 对数据库中的 double 值进行排序