我有两个不同的数据库表entries
和backers
。
我想通过比较entries
表格中user->email
和email
的电子邮件地址来选择backers
中的行。然后我需要获取那些匹配行的crowd_fund_id
来获取表entries
中的行。
我尝试了以下查询但没有工作:
$donations = DB::table('entries')
->join(
'backers',
function($join, $user){
$join->on(
'entries.crowd_id',
'backers.crowd_fund_id'
)
->where(
'backers.email',
$user->email
);
}
)
->get();
和
$donations = Entries::where(
'crowd_id',
Backers::where('email', $user->email)->pluck('crowd_fund_id')
)->get();
从entries
获取行的最佳方法是什么?
答案 0 :(得分:2)
你的语法有点不对......
$donations = DB::table('entries')
->join('backers', function($join) use ($user)
{
$join->on('entries.crowd_id', '=', 'backers.crowd_fund_id')
->where('backers.email', '=', $user->email);
})->get();
第二个查询给出了一个结果,因为您使用的是pluck()
。如果您只想要crowd_fund_id
的列表(数组),请使用->lists('crowd_fund_id')
而不是->pluck()
。
答案 1 :(得分:0)
如果你这样做会更简单
Banker::join('entries','entries.crowd_id','=','bankers.crowd_fund_id')
->where('bankers.email',$user->email)->get();