原始 SQL 查询的等效 Laravel Eloquent
Equivalent Laravel Eloquent for raw SQL query
我最近开始学习 php 和 laravel 框架。目前我正在学习 Eloquent 查询来存储和检索数据库中的数据。我能够执行简单的 select、插入等查询,但是我试图理解更复杂的语句,包括连接。
这是我要翻译的查询,例如:
$sql = "SELECT p.id , p.name" from clients c INNER JOIN partners p ON c.id = p.p_id where p.id = :param";
这工作正常并给出输出,但是转换后的 Eloquent 不提供相同的输出。这个原始 SQL 查询到 Laravel Eloquent 的正确转换是什么?另外,如果您对 Eloquent 中的连接有一点了解,我们将不胜感激。
这是我试过的:
DB::table('clients as c')
->join('partners as p', 'c.id', '=', 'p.c_id')
->where('p.id', '=', ':param')
->select('p.id' , 'p.name')
->get();
末尾的参数是您传递给查询构建器的变量...
而对于join,它非常简单易懂
DB::table('clients as c')
->join('partners as p', 'c.id', '=', 'p.c_id')
->where('p.id', '=', $paramerterVariable)
->select('p.id' , 'p.name')
->get();
Client::join('partners as p', 'clients.id', '=', 'p.p_id')->where('p.id', $paramerterVariable)
->where('client_id', $clientId)
->select('p.id' , 'p.name')
->get();
p.p_id 伙伴中应该是client_id table
这是 Laravel Eloquent 用于原始 SQL 查询,或者您也可以使用 laravel 延迟加载和预加载的关系
$client = Client::where('id', $clientId);
$partners = $client->partners();
我最近开始学习 php 和 laravel 框架。目前我正在学习 Eloquent 查询来存储和检索数据库中的数据。我能够执行简单的 select、插入等查询,但是我试图理解更复杂的语句,包括连接。
这是我要翻译的查询,例如:
$sql = "SELECT p.id , p.name" from clients c INNER JOIN partners p ON c.id = p.p_id where p.id = :param";
这工作正常并给出输出,但是转换后的 Eloquent 不提供相同的输出。这个原始 SQL 查询到 Laravel Eloquent 的正确转换是什么?另外,如果您对 Eloquent 中的连接有一点了解,我们将不胜感激。
这是我试过的:
DB::table('clients as c')
->join('partners as p', 'c.id', '=', 'p.c_id')
->where('p.id', '=', ':param')
->select('p.id' , 'p.name')
->get();
末尾的参数是您传递给查询构建器的变量...
而对于join,它非常简单易懂
DB::table('clients as c')
->join('partners as p', 'c.id', '=', 'p.c_id')
->where('p.id', '=', $paramerterVariable)
->select('p.id' , 'p.name')
->get();
Client::join('partners as p', 'clients.id', '=', 'p.p_id')->where('p.id', $paramerterVariable)
->where('client_id', $clientId)
->select('p.id' , 'p.name')
->get();
p.p_id 伙伴中应该是client_id table
这是 Laravel Eloquent 用于原始 SQL 查询,或者您也可以使用 laravel 延迟加载和预加载的关系
$client = Client::where('id', $clientId);
$partners = $client->partners();