如何在 laravel 中编写内部查询或嵌套查询
How to write inner query or nested query in laravel
我想在下面的查询中将 'select' 写在 'select'(内部查询)中。内部查询将像这样进行计数:
select count('id') 从顺序 memb_id = 2;
查询是:
$payment_pending_report = DB::connection('mysql_freesubs')->table('contact as c')
->select("a.name","c.lname","a.amount as pending amount")
->join("member AS m", "c.id", "=", "m.cont_id")
->join("order AS o", "o.memb_id", "=", "m.id")
->join("account AS a", "c.id", "=", "a.cont_id")
->where("a.amount_type", "=","dr")
->get();
像这样:
$payment_pending_report = DB::connection('mysql_freesubs')->table('contact as c')
->select("a.name","c.lname","a.amount as pending amount", "oc.OrderCount as order_count")
->join("member AS m", "c.id", "=", "m.cont_id")
->join("order AS o", "o.memb_id", "=", "m.id")
->join("account AS a", "c.id", "=", "a.cont_id")
->join(DB::raw("(SELECT m.id, COUNT(o.some_unique_id) as OrderCount FROM member as m INNER JOIN order as o ON o.memb_id = m.id GROUP BY m.id) AS oc"), function($join)
{
$join->on('m.id', '=', 'oc.id');
})
->join("(")
->where("a.amount_type", "=","dr")
->get();
我想在下面的查询中将 'select' 写在 'select'(内部查询)中。内部查询将像这样进行计数: select count('id') 从顺序 memb_id = 2;
查询是:
$payment_pending_report = DB::connection('mysql_freesubs')->table('contact as c')
->select("a.name","c.lname","a.amount as pending amount")
->join("member AS m", "c.id", "=", "m.cont_id")
->join("order AS o", "o.memb_id", "=", "m.id")
->join("account AS a", "c.id", "=", "a.cont_id")
->where("a.amount_type", "=","dr")
->get();
像这样:
$payment_pending_report = DB::connection('mysql_freesubs')->table('contact as c')
->select("a.name","c.lname","a.amount as pending amount", "oc.OrderCount as order_count")
->join("member AS m", "c.id", "=", "m.cont_id")
->join("order AS o", "o.memb_id", "=", "m.id")
->join("account AS a", "c.id", "=", "a.cont_id")
->join(DB::raw("(SELECT m.id, COUNT(o.some_unique_id) as OrderCount FROM member as m INNER JOIN order as o ON o.memb_id = m.id GROUP BY m.id) AS oc"), function($join)
{
$join->on('m.id', '=', 'oc.id');
})
->join("(")
->where("a.amount_type", "=","dr")
->get();