SQL内部查询 - 子查询返回多于1行

时间:2015-08-13 11:40:10

标签: java mysql

<svg height="150" width="150">
  <polygon points="20,10 100,30 120,100 0,100" style="fill:red;" />
</svg>

我收到错误消息说 错误代码:1242 子查询返回超过1行

解决方案??

2 个答案:

答案 0 :(得分:0)

你的内心疑问

(SELECT COUNT(id) FROM `conversation_messages_tbl` a ,`conversation_msgreadstatus_tbl` b WHERE a.`message_id` = b.`message_id` AND a.`topic_id` = b.`topic_id` AND  b.`is_read`= 0 AND b.`user_id`!= 27 GROUP BY b.`user_id`) countn

可能返回超过1行,因为它将返回不同于27的每个不同user_id的计数(因为分组依据)。

答案 1 :(得分:0)

您的子查询将返回多行,因为您使用了GROUP BY b.user_id并且查询和子查询之间没有条件。

如果我以正确的方式思考,cmrt.user_id等于b.user_id,您可以为子查询添加条件,如下所示:

(SELECT COUNT(id) FROM `conversation_messages_tbl` a   
`conversation_msgreadstatus_tbl` b WHERE a.`message_id` = b.`message_id`
AND a.`topic_id` = b.`topic_id` AND  b.`is_read`= 0 AND b.`user_id`!= 27 
b.`user_id`=cmrt.user_id) countn