I'm using Laravel 8 I have many relationships in the models, I want to create this query in Eloquent, could somebody help me?
SELECT D.name AS Dimensiones, SUM(A.value) AS Total_Dimensiones
FROM answer_application ANP
INNER JOIN answers A ON ANP.answer_id = A.id
INNER JOIN questions Q ON Q.id = A.question_id
INNER JOIN dimensions D ON D.id = Q.dimension_id
GROUP BY D.name;
This is my models
AnswerApplication Model
class AnswerApplication extends Model
{
use HasFactory;
protected $guarded = [];
public function exam ()
{
return $this->belongsTo(Exam::class);
}
}
Application Model
class Application extends Model
{
use HasFactory;
protected $guarded = [];
public function exam(){
return $this->belongsTo(Exam::class);
}
public function answers (){
return $this->belongsToMany(Answer::class)->withTimestamps();
}
public function question()
{
return $this->belongsTo(Question::class);
}
}
Question Model
class Question extends Model
{
use HasFactory;
protected $guarded = [];
public function answers ()
{
return $this->hasMany(Answer::class);
}
public function exam ()
{
return $this->belongsTo(Exam::class);
}
public function dimension()
{
return $this->belongsTo(Dimension::class);
}
}
Answer Model
class Answer extends Model
{
use HasFactory;
protected $guarded = [];
public function question()
{
return $this->belongsTo(Question::class);
}
public function applications (){
return $this->BelongsToMany(Application::class);
}
}
Dimension Model
class Dimension extends Model
{
use HasFactory;
protected $guarded = [];
public function domain(){
return $this->belongsTo(Domain::class);
}
}
Domain Model
class Domain extends Model
{
use HasFactory;
protected $guarded = [];
public function category (){
return $this->belongsTo(Category::class);
}
}
Category Model
class Category extends Model
{
use HasFactory;
protected $guarded = [];
public function domains()
{
return $this->hasMany(Category::class);
}
}