Код: Выделить всё
SELECT
p.id , p.title , p.msrp , i.files
, p.cost
FROM
`products` p
LEFT JOIN (
SELECT
GROUP_CONCAT( `images`.`filename` SEPARATOR ',' ) AS files , `product_id`
FROM
`images`
GROUP BY
`product_id`
) i ON i.product_id = p.id
Код: Выделить всё
$products = DB::table( 'products as p' )
->where( 'p.active' , '=' , 1 )
->select( $fields )
->get();
Код: Выделить всё
$fields = array( 'p.id' , 'p.title' , 'p.msrp' , 'i.files' ) ;
if( Auth::check() ) array_push( $fields , 'p.cost' ) ;
Код: Выделить всё
->leftJoin(DB::raw( "( SELECT GROUP_CONCAT( images.filename SEPARATOR ',' ) , product_id FROM images GROUP BY product_id ) i" , "i.product_id", "=" , "p.id" )
По касательной... Я думаю, что выбор подзапроса не поддерживается, поэтому, если у кого-то есть лучший вариант, дайте мне знать.
Подробнее здесь: https://stackoverflow.com/questions/293 ... ry-builder