how could i write this query in eloquent for laravel 8

i have a problem writing a query on laravel 8.

i have this models:

class ScrittureBilancio extends Model
{
    use HasFactory;
    protected $table = 'scritturebilancio';
    protected $fillable = ['CodiceConto','IdLibroMastro','IdRubrica','IdIniziativa',
        'Data','Importo','Segno','Descrizione','Esercizio','Competenza'];
    protected $primaryKey = 'idscritturebilancio';
    
    public function Rubrica() {
        return $this->belongsTo(Rubrica::class,'IdRubrica', 'idRubrica');
    }
    
    public function Iniziativa() {
        return $this->belongsTo(Iniziative::class,'IdIniziativa', 'idiniziativa');
    }
    
}

class Iniziative extends Model
{
    use HasFactory;
    protected $table = 'iniziative';
    protected $fillable = ['Denominazione','IdStruttura','IdAgenzia','TipoIniziativa','StatoIniziativa'];
    protected $primaryKey = 'idiniziativa';
    
    public function Agenzia() {
        return $this->belongsTo(Agenzie::class,'IdAgenzia', 'idagenzia');
    }
    
    public function Struttura() {
        return $this->belongsTo(StruttureIniziativa::class,'IdStruttura','idstrutturainiziativa');
    }
       
}

class StruttureIniziativaPianoConti extends Model
{
    use HasFactory;
    protected $table = 'struttureiniziativepianiconti';
    protected $fillable = ['CodiceBilancio','Descrizione','IdStruttura','CodiceVoceMIRWEB','IdPadre',
        'Natura','Riferimento','Gestione','ControPartita','Tipo'];
    protected $primaryKey = 'id';
    
    public function Struttura() {
        return $this->belongsTo(StruttureIniziativa::class,'IdStruttura', 'idstrutturainiziativa');
    }
}

i have to write this query in eloquent:

SELECT * FROM scritturebilancio LEFT JOIN iniziative on scritturebilancio.idiniziativa=iniziative.idiniziative LEFT JOIN struttureiniziativepianiconti ON iniziative.idstruttura=struttureiniziativepianiconti.id WHERE codiceConto IN (SELECT codicebilancio FROM struttureiniziativepianiconti WHERE natura=’Costi’) AND scritturebilancio.idiniziativa=193

Can someone help me? i am pretty new developer on php and laravel.Thanks to all.

Answer

Use query in this format

ScrittureBilancio::select('*')
                ->leftjoin('iniziative','scritturebilancio.idiniziativa','=','iniziative.idiniziative')
                ->leftjoin('struttureiniziativepianiconti','iniziative.idstruttura','=','struttureiniziativepianiconti.id')
                ->whereRaw('scritturebilancio.codiceConto IN (SELECT codicebilancio FROM struttureiniziativepianiconti WHERE natura="Costi") AND scritturebilancio.idiniziativa=193')
                ->get();