我需要 Mysql 查询: 我有一个包含 start_date 和 End_date 列的表,从中我需要找出谁有 future 的软件包。 future 的软件包意味着在他的软件包到期日期之前他更新了他的软件包。例如:
person_id start_date end_date
101765 28-04-2017 27-07-2017
101765 10-07-2017 26-10-2017
从上面的例子来看,同一个人在他的包裹结束之前更新了他的包裹。 所以我需要显示这些类型的包以显示为 future 的包。
请帮我解决这个问题
最佳答案
将表与其自身连接起来,并将一行的 start_date
与另一行的 end_date
进行比较。
SELECT *
FROM yourtable AS t1
JOIN yourtable AS t2
ON t1.person_id = t2.person_id AND t1.id != t2.id AND t1.start_date < t2.end_date
我假设表中还有一个唯一的 id
字段,我用它来防止将行与其自身进行比较。
关于mysql 需要从我的表中查找 future 的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45428374/