当前位置: 首页 > 知识库问答 >
问题:

MySQL子查询错误:子查询返回超过1行

杜俭
2023-03-14

当“事件ID”与“用户ID”匹配时,im会尝试从我的“事件”表中选择所有数据。然而,我得到一个错误1242,子查询返回超过1行。

$query = "SELECT * FROM events WHERE id = (SELECT event_id FROM booking_dates WHERE user_id = '{$user_id}')";
$event_set = mysqli_query($connection, $query);

我理解我的子查询将返回多行,因为一个用户可以参加多个事件。那么我如何使我的查询接受多行呢?

共有1个答案

祁渊
2023-03-14

您可以在中使用:

SELECT * FROM events 
WHERE id IN (SELECT event_id FROM booking_dates WHERE user_id = '{$user_id}')

警告:在SQL中注入类似的字符串会使它们容易受到SQL注入的攻击。请查看您可以在没有此漏洞的情况下绑定参数的已准备语句。

 类似资料:
  • 我不知道当我在Mysql中运行查询时,会出现此错误。 #1242-子查询返回超过1行 谁能帮我解决这个问题?

  • 子查询返回超过1行?? 下表是我想要达到的目标 这就是为什么我认为我需要使用group by来区分user_id 我已经看过了 子查询返回超过1行-MySQL 子查询返回的行数是否超过1行? 但还是不明白。 通过连接两个不同的表,我得到了下表。 谁能帮我解决这个问题?

  • 问题内容: 我正在执行此查询: 我正在尝试使其返回如下内容: 但是,我得到了错误: #1242-子查询返回的行数超过1。 我尝试将语句放置在子查询中,但是收到无效的语法错误。 问题答案: 您可以使用简单的分组方式在没有子查询的情况下进行尝试: 使用GROUP BY时,未分组的任何列都必须具有聚合子句(fe SUM或COUNT。)因此,在这种情况下,您必须对县名称,precienct.id和prec

  • 问题内容: 桌子: 我的查询: 我收到“ MySQL子查询返回多个行”错误。 我知道此查询可以使用以下查询的解决方法: 然后使用php循环遍历结果并执行以下查询以获取和回显它: 但是我认为可能会有更好的解决方案? 问题答案: 简单的解决方法是在子查询中添加一个子句: 一个更好的选择(就性能而言)是使用联接:

  • 问题内容: 当我尝试运行以下查询时出现错误: 是什么导致此错误? 问题答案: 将一个返回多列的子查询放在列表中,然后从中选择。 首先,相关子查询将是一个坏主意。但是,您的查询甚至没有关联,但是 没有关联 (没有链接到外部查询),并且似乎返回了多行。这导致产生笛卡尔积的(可能非常昂贵且荒谬的)交叉连接,可能不是您的(秘密)意图。 看起来您确实想要: 两者也都是毫无意义的。WHERE条件将一个强制为a

  • 问题内容: 您好,我有查询,其中我已使用select语句编写了更新语句。但是不幸的是,子查询返回错误会返回1行以上的错误。我知道错误即将到来。但我不知道相同的解决方案。谢谢。这是查询: 问题答案: 当您对子查询使用update时,必须返回不超过一个值(一行)。如果返回多个值,如何将两行表分配给标量字段。因此,您应该弄清楚为什么子查询返回多于一行的内容,并修复该子查询,或者确定多于一行的情况下选择哪