Laravel加入与限制
我有以下的laravel工作分页Laravel加入与限制
$query = DB::table('clients')
->leftJoin('radusergroup', 'clients.username', '=', 'radusergroup.username')
->leftJoin('recharge', 'clients.username', '=', 'recharge.soldto');
我想从两个表radusergroup和充电加入一些值。 radusergroup总是返回一行,因为它只有一行存储,而充值表返回多行。我只想从充值表中返回一行,这是最新的条目。
现在它从充值表中返回所有可能的行并在分页视图中显示它。
这是Laravel Official documentation
DB::table('clinets')
->leftJoin('radusergroup', 'clients.username', '=', 'radusergroup.username')
->leftJoin('recharge', function ($leftJoin) {
$leftJoin->on('clients.username', '=', 'recharge.soldto')
->where('recahrge.create_date', '=', DB::raw("(select max(`create_date`) from recahrge)"));
})
->get();
这种情况下,如果你在你的表有CREATE_DATE列,如果你还没有它,我强烈建议创建一个列。
我已经有充值表中的日期列'salesdate'。但是,运行您的查询将返回以下错误。语法错误或访问冲突:1064您的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,在正常充值时选择max('salesdate')附近使用正确的语法)?''在第1行(SQL:select * from'clients' left join'radusergroup' on'clients'.'username' ='radusergroup'.'username' left join'recharge' on'clients'.'username' ='recharge' .soldto'和'recharge'.'salesdate'(从充值中选择最多('salesdate'))) –
立即工作。它缺少'='in - >其中('recahrge.create_date',DB :: raw(“(从recahrge选择max('create_date'))”)); –
ok))我现在将编辑它 –
试试这个例子:http://*.com/questions/28849719/sql-select-join-with-a-limit-in-laravel-php –