提问者:小点点

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


当“事件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个答案

匿名用户

您可以在中使用:

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

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