mysql - SQL - 与自身连接
问题描述
我有一张t1
如下表
-----------------------------
| date | id | value |
-----------------------------
| 2/28/2019 | 1 | abc1 |
| 2/28/2019 | 2 | abc2 |
| 2/28/2019 | 3 | abc3 |
| 2/27/2019 | 1 | abc4 |
| 2/27/2019 | 2 | abc5 |
| 2/27/2019 | 3 | abc3 |
-----------------------------
我想从中获取abc3
,t1
然后在同一个表中找到一天的abc3
值并显示两条记录。date - 1
t1
在这种情况下,它将是 2 条记录:
-------------------------------
| date | id | value |
-------------------------------
| 2/28/2019 | 3 | abc3 |
| 2/27/2019 | 3 | abc3 |
-------------------------------
如何做到这一点?谢谢。
解决方案
您可以使用 EXISTS:
select t.*
from tablename t
where
value = 'abc3'
and
exists (
select 1 from tablename
where value = 'abc3' and date in (t.date - INTERVAL 1 DAY, t.date + INTERVAL 1 DAY)
)
请参阅演示。
推荐阅读
- selenium - 无头 Chrome 不断弹出弃用
- nginx - 在 ubuntu 上为代客安装 nginx
- c# - 作为 ClickOnce winforms 应用程序发布后 log4net 未记录
- python - 使用 Python 在 Maya 中使用 distanceDimension 进行旋转
- analytics - 在基于 DTM 事件的规则上添加 GTM 标签/事件
- docker - 在 Docker 映像中预安装 gradle 插件
- scala - Spark ML:数据反规范化
- c# - 在 .net core webapi 中访问 QueryString、Route 参数值
- android - 无法合并 dex(使用 SQL JDBC)
- java - 如何为每个交易生成包含指标的详细报告