我有两张桌子:
CorsoVittorioEmanueleII920122Milano
我想查询第一个表,同时在子查询中计算(并作为新列返回)所有类似的产品。我如何组合以下查询?
Corso Vittorio Emanuele II 9 20122 Milano
如何使用Laravel查询实现此目的? 谢谢!
答案 0 :(得分:0)
不是您特别要求的答案,但作为替代方案,使用Eloquent非常容易处理。
$products = Product::with('likes');
foreach ($products as $product) {
echo 'Number of likes: '.$product->likes->count();
}
答案 1 :(得分:0)
使用group by子句的连接,而不是子查询。通过这种方式,您可以一次性获得所有产品的计数,您无需逐个查询计数。 sql如下所示:
select p.id, p.name, p.price, count(l.id) as likecount
from products p
left join likes l on p.id=l.prodid
group by p.id, p.name, p.price
答案 2 :(得分:0)
试试这个
$likes = DB::table('LIKES')
->join('PRODUCTS', 'LIKES.PRODID', '=', 'PRODUCTS.id')
->select('LIKES.*')
->where('PRODUCTS.id', '=', 3)
->get();
$total_like = count($likes);