【发布时间】:2020-08-17 10:28:57
【问题描述】:
我有一张这样的桌子:
ID Value Key
0 ValA 0
1 ValB 0
2 ValC 1
4 ValD 0
5 ValE 1
除了表格本身,我还对 Key==1 的第一个 ID 感兴趣。我可以使用以下查询来找到它:
SELECT Key FROM MyTable WHERE Key=1 ORDER BY ID ASC LIMIT 1
现在,我想将查询组合到常规 SELECT 中,这样我就可以一次性获得所有汇总信息。
我的以下尝试失败了,我尝试了:
SELECT
ID,
Value,
Key,
(SELECT Key FROM MyTable WHERE Key=1 ORDER BY ID ASC LIMIT 1 AS FirstKeyIs1)
FROM MyTable
我应该如何重写我的查询?预期的行为应该是FirstKeyIs1 为 2。最终目标是过滤掉在2 之前具有关键属性的 ID。
ID Value Key FirstKeyIs1
0 ValA 0 2
1 ValB 0 2
2 ValC 1 2
4 ValD 0 2
5 ValE 1 2
【问题讨论】:
-
我正在使用 MySQL。
-
Key 是 MySQL 中的保留字。也许重新开始。
标签: mysql sql database subquery window-functions