Maison  >  Questions et réponses  >  le corps du texte

Conseils pour écrire cette phrase de manière élégante

J'ai deux tablesParametersShare_Details. J'ai ma requête SQL brute ici et je veux l'écrire de manière purement éloquente. s'il vous plaît, aidez-moi.

$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粉025632437377 Il y a quelques jours534

répondre à tous(1)je répondrai

  • P粉459440991

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

    Essayez quelque chose comme ceci :

    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();

    répondre
    0
  • Annulerrépondre