Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

hassanraza504's avatar

sql query not working with DB::select

The following query is working fine in phpmyadmin (sql)

select id ,fname , last_order_date , created_at, 'masterdealers' as Source, null as type, (select id as uuid from uuids WHERE userable_type LIKE '____m%' AND userable_id = masterdealers.id) as uuid FROM masterdealers UNION ALL select id ,fname,last_order_date , created_at, 'dealers' as Source , null as type,(select id as uuid from uuids WHERE userable_type LIKE '____d%' AND userable_id = dealers.id) as uuid FROM dealers UNION ALL select id,fname,last_order_date , created_at, 'customers' as Source , type , (select id as uuid from uuids WHERE userable_type LIKE '____c%' AND userable_id = customers.id) as uuid FROM customers where created_at >= '".$startDate."' AND created_at <= '".$endDate. "'

But when i use this query in laravel controller as follow, it returns empty string

$results = DB::select("select id ,fname , last_order_date , created_at, 'masterdealers' as Source, null as type, (select id as uuid from uuids WHERE userable_type LIKE '____m%' AND userable_id = masterdealers.id) as uuid FROM masterdealers UNION ALL select id ,fname,last_order_date , created_at, 'dealers' as Source , null as type,(select id as uuid from uuids WHERE userable_type LIKE '____d%' AND userable_id = dealers.id) as uuid FROM dealers UNION ALL select id,fname,last_order_date , created_at, 'customers' as Source , type , (select id as uuid from uuids WHERE userable_type LIKE '____c%' AND userable_id = customers.id) as uuid FROM customers where created_at >= '".$startDate."' AND created_at <= '".$endDate. "'");
dd($results);
0 likes
6 replies
mballaag's avatar

i rewrite the code for you :


$first = DB::table('dealers')
            ->select('id' ,'fname', 'last_order_date' , 'created_at', 'masterdealers as Source', 'null as type') 
                         ->select(DB::raw('(select id as uuid from uuids WHERE userable_type LIKE "____m%" AND userable_id = masterdealers.id) as uuid'))

$second = DB::table('customers')
            ->select('id' ,'fname','last_order_date' , 'created_at', 'dealers as Source' , 'null as type')
            ->select(DB::raw('(select id as uuid from uuids WHERE userable_type LIKE "____m%" AND userable_id = masterdealers.id) as uuid'))


$results = DB::table('masterdealers')
            ->select('id' ,'fname' , 'last_order_date' , 'created_at', 'masterdealers as Source', 'null as type')
            ->select(DB::raw('(select id as uuid from uuids WHERE userable_type LIKE "____m%" AND userable_id = masterdealers.id) as uuid'))
            ->where('created_at','>=',$startDate)
            ->where('created_at','<=', $endDate)
            ->unionAll($first)
                        ->unionAll($second)
            ->get();
hassanraza504's avatar

@mballaag i got following error

Parse error: syntax error, unexpected '____m' (T_STRING), expecting ',' or ')'

Please or to participate in this conversation.