MySQL-基于相同表记录的where子句

时间:2018-07-09 18:57:37

标签: mysql

我有以下case

ORDER BY ( subject IN ('Economics', 'Chemistry') ) ASC,
         subject, winner

和简单查询:

Registration

`

如何从少于30天的先前注册中获得该注册集中的所有注册?

因此,对于每个注册,我必须检查是否存在同一个人的先前注册 (对于同一PersonID)。

我可以使用单个查询解决此问题吗?

1 个答案:

答案 0 :(得分:0)

您可以使用WHERE EXISTS子句:

SELECT ID, PersonID, CheckInDate
  FROM Registration r1
  WHERE CheckInDate>='2018-06-01'
    AND CheckInDate< '2018-07-01'
    AND EXISTS (SELECT 1 FROM Registration r2 
      WHERE r1.PersonID = r2.PersonID
        AND r1.CheckInDate > r2.CheckInDate
        AND datediff(r1.CheckInDate, r2.CheckInDate) < 30)