子查询在mysql中返回多于1行 [英] Subquery returns more than 1 row in mysql
本文介绍了子查询在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屋!
查看全文