Home > Blockchain >  Laravel Join query
Laravel Join query

Time:01-03

I'm new to Laravel, I wanted to make a union with the DB and it didn't work for me, I tried it in SQL and it worked fine, I don't know what I'm doing wrong? Would you be kind enough to help me with this dilemma, thanks

here is the SQL query:

SELECT SUM(materias.Credito) FROM historico_notas INNER JOIN materias ON materias.id = historico_notas.materias_id INNER JOIN estudiante_seccion on estudiante_seccion.id = historico_notas.estudiante_seccion_id WHERE historico_notas.nota >= 10 and estudiante_seccion.id_persona = 627;

This is the generated query SQL: enter image description here

here in my attempt in laravel:

$prueba = DB::table('historico_notas')
    ->join('materias','materias.id', '=',' historico_notas.materias_id ' )
    ->join('estudiante_seccion',' estudiante_seccion.id','=','historico_notas.estudiante_seccion_id' )
    ->where('historico_notas.nota','>=',10 )
    ->where(' estudiante_seccion.id_persona','=',$persona_alumno)     
    ->sum('materias.Credito');

This is the generated query and error.

My dilemma is that I want my sql query to Laravel and something gives me an error and I don't know what error I have

the SQL query works perfectly for me, but when I try to go to Laravel it gives me an error, what i show is my attempt to pass the sql query to laravel and what i want is my sql query to laravel

How would the syntax be properly?

CodePudding user response:

I just converted your SQL into this.

$query = DB::table('historico_notas')
    ->join('materias', 'materias.id', '=', 'historico_notas.materias_id')
    ->join('estudiante_seccion', 'estudiante_seccion.id', '=', 'historico_notas.estudiante_seccion_id')
    ->where('historico_notas.nota', '>=', 10)
    ->where('estudiante_seccion.id_persona', '=', 627)
    ->sum('materias.Credito');

CodePudding user response:

The error gets an unknown column "historico_notas.nota", you can check it in the table if it exists

  • Related