我有一个数据库,其中有两个表 driver_company_map
以及 company
我要做的就是 company_code
从 driver_company_map
表,并将其传递到对其执行的另一个查询的where子句中 company
表中的两个单独的查询都是这样工作的
$result = DB::connection($this->masterDb)->table('driver_company_map')
->where('driver_code', $driverCode) //i get the $driverCode from function parameter
->select('company_code')
->first();
$companyCode = $result->company_code;
我用上面的 $companyCode
在下面的查询中
$result = DB::connection($this->masterDb)->table('company')
->where('code', $companyCode)
->select('db_connection')
->first();
$clientDb = $result->db_connection;
上面的逻辑工作得很好,但我想两者都作为嵌套查询我尝试了,但没有给出正确的结果下面是我的代码
$result = DB::connection($this->masterDb)->table('company')
->where('code', function($companyCode_query){
$companyCode_query->select('company_code')
->from('driver_company_map')
>where('driver_code', $driverCode);
})->get()
->select('db_connection')
->first();
$clientDb = $result->db_connection;
1条答案
按热度按时间pod7payv1#
试试这个:
请参阅:https://laravel.com/docs/5.6/queries#joins