【问题标题】:MySQL Select query - remove unwanted rowsMySQL Select 查询 - 删除不需要的行
【发布时间】:2010-08-26 19:04:28
【问题描述】:

我有一张表,上面有以下内容(我已按日期排序):

ID        prodId    date
16      532     2015-08-17
19      535     2014-08-18
18      534     2011-08-17
27      48      2010-08-26
26      1541    2010-08-25
25      1541    2010-08-21
24      1540    2010-08-20
21      48      2010-08-19
20      48      2010-08-18
17      533     2010-08-17
14      532     2010-08-17
22      1540    1970-01-01

我想选择日期是过去的最近的 prodId。我的问题是我得到了多个具有相同值的 prodId(在本例中为 48 和 1541)。

我的查询目前是:

SELECT * FROM `prods` WHERE (date <= '2010-08-26')  order by date DESC

如何更改查询以删除不需要的行?

【问题讨论】:

  • 人为错误>.

标签: mysql


【解决方案1】:
SELECT * FROM prods p1
WHERE (date <= '2010-08-26') 
AND Date in (Select Max(Date) from prods p2 where p1.prodId = pr.ProdId 
             and date <= '2010-08-26')
order by activeUntil DESC

【讨论】:

  • 这正是我想要的 =D 谢谢。
【解决方案2】:

添加limit 1进行查询

【讨论】:

    【解决方案3】:

    您在寻找 LIMIT 语句吗?

    SELECT * FROM `prods` WHERE (date <= '2010-08-26')  order by activeUntil DESC LIMIT 1
    

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 2011-06-30
      • 1970-01-01
      相关资源
      最近更新 更多