【问题标题】:How to use top 1 from subquery in MariaDB?如何在 MariaDB 中使用子查询中的前 1 个?
【发布时间】:2021-12-28 15:07:50
【问题描述】:

假设我想获取门票列表,并且我想为每张门票找出最新帖子的日期。在 SQL Server 中,我可以这样做:

select 
    Tickets.*
    (
        select top 1 [Date]
        from Posts 
        where TicketId = Tickets.Id
        order by [Date] desc
    ) as LatestPostDate
from Tickets 

我意识到我们不能在 MariaDB 中使用 top 1。正如我搜索的那样,我们应该使用limit 1。但这不起作用:

select 
    Tickets.*
    (
        select `Date`
        from Posts 
        where TicketId = Tickets.Id
        order by `Date` desc
        limit 1
    ) as LatestPostDate
from Tickets

【问题讨论】:

    标签: mariadb subquery limit


    【解决方案1】:

    可以在子查询中使用LIMIT。您只是在查询中缺少一个逗号:

    select 
        Tickets.*,   <-- missing comma
        (
            select `Date`
            from Posts 
            where TicketId = Tickets.Id
            order by `Date` desc
            limit 1
        ) as LatestPostDate
    from Tickets
    

    事实上,子查询应该总是有一个LIMIT 1 子句,以确保你总是只得到一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-13
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多