Php 当我在laravel中编写连接查询时,它得到';允许的内存耗尽';
我在laravel项目中编写了连接查询。数据库中有一百万条记录。当我加载页面时,它会显示“允许内存耗尽”消息。有人能帮我解决这个问题吗? 我的代码: mysql查询Php 当我在laravel中编写连接查询时,它得到';允许的内存耗尽';,php,mysql,laravel-5,Php,Mysql,Laravel 5,我在laravel项目中编写了连接查询。数据库中有一百万条记录。当我加载页面时,它会显示“允许内存耗尽”消息。有人能帮我解决这个问题吗? 我的代码: mysql查询 SELECT SUM(sales.amount) as total FROM `sales` INNER JOIN user ON sales.userid = user.userid And sales.bankid = user.bank_id WHERE sales.bankid=1 user.bank_id=1 AND
SELECT SUM(sales.amount) as total FROM `sales` INNER JOIN user
ON sales.userid = user.userid
And sales.bankid = user.bank_id
WHERE sales.bankid=1
user.bank_id=1
AND sales.month=8
AND sales.year= 2020
And user.usertype=6
另一个问题(2)我已经尝试过了,我没有遇到“允许内存耗尽”的问题。它工作得很好,但是当我尝试获取usertype1和usertype2记录时。我得到了错误的值
function test($bank_id=NULL,$month=NULL,$year=NULL,$userType=NULL){
$query = Sales::query();
if($bank_id){
$query = $query->where('bankid', $bank_id);
}
if($month)
$query = $query->where('month', $month);
if($year)
$query = $query->where('year', $year);
$query = $query->select(DB::raw("SUM(amount) as total"));
if($userType!="all"){
$query->whereIn('userid', function ($query1) use ($userType,$bank_id) {
$query1->select('userid')
->from('user');
if($bank_id!="all"){
$query1 = $query1->where('bank_id', $bank_id);
}
if($userType==1){
$query1->where('usertype', 1)->orWhere('agentType', 2);
} else {
$query1->where('usertype', $userType);
}
});
}
return $query->get()->toarray()[0]['total'];
}
mysql查询
$query=DB::select("SELECT SUM(sales.amount) as total
FROM `sales`
WHERE month=8
AND year= 2020
AND bank=2
AND `userid` IN (select userid from user where bank_id=2 AND(usertype=1 OR usertype=2))");
谢谢。添加
ini\u集('memory\u limit','1024M')代码>行。数据库中有100万条销售记录和3万条用户记录。我已经在数据库中创建了带有用户和销售表的视图。我已经包括了金额、月份、年份、银行、用户ID和用户类型表字段。现在加载问题没有发生。我已经增加到2GB。但还是一样的问题。
$query=DB::select("SELECT SUM(sales.amount) as total
FROM `sales`
WHERE month=8
AND year= 2020
AND bank=2
AND `userid` IN (select userid from user where bank_id=2 AND(usertype=1 OR usertype=2))");