cari

Rumah  >  Soal Jawab  >  teks badan

Petua untuk menulis ayat ini dengan cara yang elegan

Saya ada dua mejaParametersShare_Details. Saya mempunyai pertanyaan SQL mentah saya di sini dan saya mahu menulisnya dengan cara Fasih yang tulen. tolong bantu.

$shareDetails=DB::select
              ("SELECT s.id,
                       share_type,
                       para_int_1,
                       para_int_2,
                       price,
                       para_name 
             FROM share_details as s,parameters 
                  where para_type='share'
                    and para_id=share_type
                    and startDate=(select max(startdate) 
                                   from share_details 
                                   where share_type=s.share_type)
              group by share_type,
                       s.id,
                       para_int_1,
                       para_int_2,
                       price,
                       para_name");

P粉025632437P粉025632437434 hari yang lalu627

membalas semua(1)saya akan balas

  • P粉459440991

    P粉4594409912023-09-08 17:19:47

    Cuba sesuatu seperti ini:

    DB::table('share_details')
    ->crossJoin('parameters'
    ->select('share_details.id', 'share_type', 'para_int_1', 'para_int_2', 'price', 'para_name')
    ->where('para_type','=','share')
    ->where('para_id','=',DB::raw('share_type'))
    ->where('startDate','=',function($query) {
        $query->from('share_details')
            ->select(DB::raw("'max'(startdate))
            ->where('share_type','=',DB::raw('s.share_type'));
    })
    ->groupBy('share_type','share_details.id','para_int_1','para_int_2','price','para_name')
    ->get();

    balas
    0
  • Batalbalas