【发布时间】:2019-02-12 00:37:18
【问题描述】:
我有这张表叫sw_sowing
-----------------------------------------------------------------
id | id_unit | date | id_variety | type | status |
-----------------------------------------------------------------
1 | 1 | 2017-08-10 | 1 | SW | 200 |
-----------------------------------------------------------------
2 | 1 | 2017-10-10 | 1 | ER | 100 |
-----------------------------------------------------------------
3 | 1 | 2017-11-30 | 2 | SW | 100 |
-----------------------------------------------------------------
4 | 2 | 2017-12-10 | 3 | SW | 200 |
-----------------------------------------------------------------
5 | 2 | 2017-12-10 | 3 | ER | 100 |
-----------------------------------------------------------------
6 | 3 | 2017-08-05 | 4 | SW | 200 |
-----------------------------------------------------------------
7 | 3 | 2017-12-13 | 4 | ER | 100 |
-----------------------------------------------------------------
8 | 3 | 2018-01-04 | 1 | SW | 100 |
-----------------------------------------------------------------
9 | 3 | 2018-01-04 | 2 | SW | 100 |
-----------------------------------------------------------------
我想根据日期了解 id_unit 的当前状态和 id_variety。 我有这个问题:
SELECT sw_sowing.id_unit, sw_sowing.id_variety, sw_sowing.type, sw_sowing.status
FROM (
SELECT MAX(id) AS id
FROM sw_sowing
WHERE date <= '2018-09-06'
GROUP BY id_unit
) AS sw
INNER JOIN sw_sowing ON sw_sowing.id = sw.id
它给了我以下结果:
-----------------------------------------------------
id_unit | id_variety | type | status |
-----------------------------------------------------
1 | 2 | SW | 100 |
-----------------------------------------------------
2 | 3 | ER | 100 |
-----------------------------------------------------
3 | 2 | SW | 100 |
-----------------------------------------------------
问题是id_unit = 3 有两个不同的id_variety 和state = 100,但是前面的查询给出了最后一个,而我想要两个id_variety。
类似这样的:
-----------------------------------------------------
id_unit | id_variety | type | status |
-----------------------------------------------------
1 | 2 | SW | 100 |
-----------------------------------------------------
2 | 3 | ER | 100 |
-----------------------------------------------------
3 | 1 | SW | 100 |
-----------------------------------------------------
3 | 2 | SW | 100 |
-----------------------------------------------------
希望你能帮助我!
【问题讨论】:
-
那你为什么要搜索max ids?如果需要获取,请搜索
state = 100。 -
@Shadow Beacuse 如果我需要知道 id_unit 的状态,例如在 '2017-08-09' 中,结果是
id_unit = 1有type = 'SW'ANDstatus = 200ANDid_variety = 1 -
对不起,我不明白你想要什么。我认为您应该编辑您的问题并解释选择标准。