在两个具体栏中,如果我拥有两个或两个以上具有相同价值的增长,我只需要一行。 选定的行文必须是国名栏中的最新行文。
SELECT * FROM `history` WHERE productId IN (166, 2915) ORDER BY history.value;
OBS:产品 因此,我可以有20多个项目。 这只是一个例子。
ACTUAL RETURN
id | supermarketId | productId | value | date |
---|---|---|---|---|
2722 | 2 | 2915 | 7.98 | 2023-11-19 00:00:00 |
180 | 3 | 166 | 7.99 | 2023-07-23 00:00:00 |
1639 | 2 | 166 | 8.98 | 2023-06-05 00:00:00 |
4251 | 2 | 166 | 8.98 | 2024-02-17 00:00:00 |
4220 | 2 | 2915 | 8.98 | 2024-02-17 00:00:00 |
2759 | 3 | 2915 | 9.99 | 2023-11-15 00:00:00 |
DESIRED RETURN
id | supermarketId | productId | value | date |
---|---|---|---|---|
180 | 3 | 166 | 7.99 | 2023-07-23 00:00:00 |
4251 | 2 | 166 | 8.98 | 2024-02-17 00:00:00 |
4220 | 2 | 2915 | 8.98 | 2024-02-17 00:00:00 |
2759 | 3 | 2915 | 9.99 | 2023-11-15 00:00:00 |
我尝试:
SELECT * FROM `history` WHERE productId IN (166, 2915)
AND date = (SELECT MAX(date) FROM history) ORDER BY history.value;
但是,一些增长已经消除:
id | supermarketId | productId | value | date |
---|---|---|---|---|
4251 | 2 | 166 | 8.98 | 2024-02-17 00:00:00 |
4220 | 2 | 2915 | 8.98 | 2024-02-17 00:00:00 |