子查询在mysql中返回多于1行 [英] Subquery returns more than 1 row in mysql

查看:1180
本文介绍了子查询在mysql中返回多于1行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在执行以下查询,并收到错误消息子查询返回多于1行"

I am executing the following query and got the error "Subquery returns more than 1 row"

我的查询是

SELECT pkTicketID,
       TicketReplyDateAdded,
       TIMESTAMPDIFF(DAY, TicketReplyDateAdded, now()) as NumberOfDays
  FROM tickets as T
    LEFT JOIN ticket_replies as TR ON T.fkTicketReplyID=TR.pkTicketReplyID
  WHERE 1 AND T.fkEmployeeID = '4'
    AND (SELECT TIMESTAMPDIFF(DAY, TicketReplyDateAdded, now()) as NumberOfDays
           FROM tickets as T
             LEFT JOIN ticket_replies as TR
               ON T.fkTicketReplyID=TR.pkTicketReplyID
        ) = 7
    AND T.TicketStatus = 'Replied'
  ORDER BY pkTicketReplyID DESC

感谢您的帮助. 乌玛尔

Thanks for your help. Umar

推荐答案

您可以通过限制子查询仅返回一行来解决此错误,如下所示:

You can fix this error by limiting the subquery to return only one row, like this:

SELECT pkTicketID,TicketReplyDateAdded,
       TIMESTAMPDIFF(DAY, TicketReplyDateAdded,now()) as NumberOfDays 
FROM   tickets as T 
       LEFT JOIN ticket_replies as TR
       ON T.fkTicketReplyID=TR.pkTicketReplyID 
WHERE  1 
AND    T.fkEmployeeID = '4' 
AND    (SELECT TIMESTAMPDIFF(DAY, TicketReplyDateAdded, now()) as NumberOfDays 
        FROM tickets as T LEFT JOIN ticket_replies as TR 
        ON T.fkTicketReplyID=TR.pkTicketReplyID
        LIMIT 1) = 7 
AND     T.TicketStatus = 'Replied' 
ORDER   BY pkTicketReplyID DESC

(添加了"LIMIT 1")

(Added 'LIMIT 1')

这篇关于子查询在mysql中返回多于1行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆