Php 使用Laravel Eloquent在单个查询中基于不同列获取行
假设我有一张这样的桌子:Php 使用Laravel Eloquent在单个查询中基于不同列获取行,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,假设我有一张这样的桌子: name | link ----------- A | asdf A | zxcv B | qwer B | rtyu C | fghj 目前,我使用$link变量通过以下两个查询获得结果: // first query to get the row so I have the name $m = Model::where('link', '=', $link)->get(); // using the name, I
name | link
-----------
A | asdf
A | zxcv
B | qwer
B | rtyu
C | fghj
目前,我使用$link变量通过以下两个查询获得结果:
// first query to get the row so I have the name
$m = Model::where('link', '=', $link)->get();
// using the name, I get the rows I need
$results = Model::where('name', '=', $m->name)->get();
如何在单个查询中执行此操作?您可以使用和子查询来实现您想要的:
Model::whereIn("name", function ($query) use ($link) {
$query->select("name")
->from((new Model)->getTable())
->where("link", $link);
})->get();
您可以使用和子查询来实现所需的功能:
Model::whereIn("name", function ($query) use ($link) {
$query->select("name")
->from((new Model)->getTable())
->where("link", $link);
})->get();
试试这个
$results = Model::whereIn('name', function($query) use ($link) {
$query->from((new Model)->getTable())
->where('link', $link)
->select('name');
})->get();
或使用DB(使用真实名称更新表格名称)
试试这个
$results = Model::whereIn('name', function($query) use ($link) {
$query->from((new Model)->getTable())
->where('link', $link)
->select('name');
})->get();
或使用DB(使用真实名称更新表格名称)
你的用例是什么?$link
是从表单还是什么提交的?$link是一个部分URL,您有什么用例?$link
是从表单还是什么提交的?$link是部分URL如果我想在“使用(新模型)”部分执行“leftJoin”,我将如何执行此操作?如果我想在“使用(新模型)”部分执行“leftJoin”,我将如何执行此操作?