Subquery returns more than 1 row in mysql
I am executing the following query and got the error "Subquery returns more than 1 row"
My Query is
SELECT pkTicketID,
TicketReplyDateAdded,
TIMESTAMPDIFF(DAY, TicketReplyDateAdded, now()) as NumberOfDays
FROM tickets as T
LEFT JOIN ticket_replies as TR ON T.fkTicketReplyID=TR.pkTicketReplyID
开发者_如何学JAVA 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
(Added 'LIMIT 1')
Well, this happens because your subquery returns more than one row
zerkms to the rescue
ps: it is really A LOT of similar questions in the right "related" bar.
One approach is to add LIMIT 1
to your subquery. Another is to figure out if your subquery should logically be able to return more than one row and, if not, to fix it.
精彩评论