如何在laravel 7中使用查询生成器初始化表名



我尝试初始化表名,但出现错误。

在这种情况下,我初始化了"a"&amp表名中的b'

所以,这是我的代码:

<?php
namespace App;
use IlluminateDatabaseEloquentModel;
use IlluminateSupportFacadesDB;
use IlluminateSupportFacadesSchema;
class Act_admin extends Model
{
static function showCustomer(){
$query = "a.CUST_CODE, a.CUST_NAME AS CUSTOMER NAME, a.GRADE";
$data['data'] = DB::table("dummy_db.customer a ")
->leftJoin("dummy_db.agents b", "a.AGENT_CODE", "=", "b.AGENT_CODE")                                                
->select(DB::raw($query))->paginate(10);
dd($data);
}
}

a来自错误的消息:

IlluminateDatabaseQueryException
SQLSTATE [42000]: Syntax error or access violation: 1103 Incorrect table name 'customer a '
(SQL: select count(*) as aggregate from `dummy_db`.`customer a ` inner join `dummy_db`.`agents b` on `a`.`AGENT_CODE` = `b`.`AGENT_CODE`)

使用as创建别名。

$data['data'] = DB::table("dummy_db.customer as a")
->leftJoin("dummy_db.agents as b", "a.AGENT_CODE", "=", "b.AGENT_CODE")                                                
->select(DB::raw($query))->paginate(10);

最新更新