私はこれと同等のことをしようとしています:
select p.id, p.title, b.brand,
(select big from images where images.product_id = p.id order by id asc limit 1) as image
from products p
inner join brands b on b.id = p.brand_id
これが私が今いるところですが、もちろんうまくいきません:
public function getProducts($brand)
{
// the fields we want back
$fields = array('p.id', 'p.title', 'p.msrp', 'b.brand', 'p.image');
// if logged in add more fields
if(Auth::check())
{
array_push($fields, 'p.price_dealer');
}
$products = DB::table('products as p')
->join('brands as b', 'b.id', '=', 'p.brand_id')
->select(DB::raw('(select big from images i order by id asc limit 1) AS image'), 'i.id', '=', 'p.id')
->where('b.active', '=', 1)
->where('p.display', '=', 1)
->where('b.brand', '=', $brand)
->select($fields)
->get();
return Response::json(array('products' => $products));
}
これを行う方法に関するドキュメントには実際には何も表示されず、他の投稿からそれをつなぎ合わせることができないようです。
「通常の」SQL では、サブクエリは列として扱われますが、ここでそれをつなぎ合わせる方法がわかりません。これについて助けてくれてありがとう。