如何解决“ SELECT将检查超过MAX_JOIN_SIZE行的问题”?

时间:2019-05-29 12:43:04

标签: mysql

我正在使用MySQLi Procedural从MYSQL数据库运行查询。我只看到如何使用MySQLi面向对象的代码完成此操作

它可以在localhost上完美运行,但是在远程服务器上,我收到一条错误消息,提示我有超过MAX_JOIN_SIZE行。我使用什么代码来解决此错误?

我已经查看了所有与该错误有关的页面,尽管我知道问题出在哪里,但我仍无法解决。我看到的所有示例都使用MySQLi面向对象的代码。我尝试限制(LIMIT 30)返回的记录数,但这没什么区别。

<?php
$con=mysqli_connect("localhost","******","******","ps10");
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$query_rs4 = "SELECT * FROM  student_data INNER JOIN users ON student_data.class = users.class INNER JOIN ext_writing_tbl ON student_data.id = ext_writing_tbl.id";

$rs4 = mysqli_query($con, $query_rs4)or die( mysqli_error($con) );
$row = mysqli_num_rows($rs4);
echo "There are " . $row . " students in this class";
?>

这是完整的错误消息。

  

SELECT将检查超过MAX_JOIN_SIZE行;检查您的WHERE,如果SELECT没问题,请使用SET SQL_BIG_SELECTS = 1或SET MAX_JOIN_SIZE =#。

它应该输出到表中。

1 个答案:

答案 0 :(得分:0)

我现在确定这是服务器上设置的,并且超出了我的控制范围。然后如何编写不使用三个表的查询(两次使用INNER JOIN)?