2016-12-08 1 views
1

Wie konvertiere ich diese Select-Abfrage in Laravel Query Builder?Convert Wählen Sie Groß-/Kleinschreibung für Laravel Query Builder

select 
wi.id, 
wi.nama, 
max(case when dw.kode_kriteria like '2k%' then ks.nama_kriteria_sub else '' end) as country, 
max(case when dw.kode_kriteria like '3k%' then ks.nama_kriteria_sub else '' end) as gender, 
max(case when dw.kode_kriteria like '4k%' then ks.nama_kriteria_sub else '' end) as purpose, 
group_concat(distinct wo.id_objek) as visit_to 

Anfängliche

wi => ta_wisatawan 
dw => ta_k_detail_wisatawan 
ks => ta_kriteria_sub 
wo => ta_k_wisata_objek 

Konvertieren in dieser Query Builder

$show_wi = DB::table('ta_wisatawan') 
->leftJoin('ta_k_detail_wisatawan', 'ta_k_detail_wisatawan.id_wisatawan', '=', 'ta_wisatawan.id') 
->leftJoin('ta_kriteria_sub', 'ta_kriteria_sub.kode', '=', 'ta_k_detail_wisatawan.kode_kriteria') 
->leftJoin('ta_k_wisata_objek', 'ta_k_wisata_objek.id_wisatawan', '=', 'ta_wisatawan.id') 
->select(.....) 

Ich habe mehrere Möglichkeiten, um diese Auswahl getan, aber es funktioniert nicht.

Antwort

0

DB::raw akzeptiert eine Zeichenfolge, so versuchen Sie die folgende Abfrage:

->select(
    DB::raw(
     "wi.id, wi.nama, max(case when dw.kode_kriteria like '2k%' then ks.nama_kriteria_sub else '' end) as country, max(case when dw.kode_kriteria like '3k%' then ks.nama_kriteria_sub else '' end) as gender, max(case when dw.kode_kriteria like '4k%' then ks.nama_kriteria_sub else '' end) as purpose" 
    ) 
) 
->get(); 
0

können Sie übernehmen die Verwendung von DB::raw() mit Querybuilder wie dies funktioniert:

->select(DB::raw([ 
    "wi.id", 
    "wi.nama", 
    "max(case when dw.kode_kriteria like '2k%' then ks.nama_kriteria_sub else '' end) as country", 
    "max(case when dw.kode_kriteria like '3k%' then ks.nama_kriteria_sub else '' end) as gender", 
    "max(case when dw.kode_kriteria like '4k%' then ks.nama_kriteria_sub else '' end) as purpose", 
]))->get(); 

Sehen Sie mehr über Laravel's Raw Expressions

hoffe, das hilft!

+0

Ich versuche haben, und diesen Fehler "Array String-Konvertierung" finden –