gpt4 book ai didi

mysql - 使用 Laravel 获取学生在考试中的位置科目

转载 作者:行者123 更新时间:2023-11-30 21:47:21 24 4
gpt4 key购买 nike

我有一个名为结果的表,其中包含以下列 ID、Reg Number、Name、Subjects、Programmes、Year、Term、score。我想按学生获得每个科目的位置,其中 Programs = Art and year = 2017 and Term = 1。

        $getResults = DB::table('results')
->leftjoin(DB::raw('((SELECT regNumber, score, programmes,term,year, subject_position from
(SELECT regNumber, score, programmes,term,year, subject_position,
CASE WHEN @prevRank = score THEN @curRank WHEN @prevRank := score THEN @curRank := @curRank + 1 END AS subject_position FROM results p,
(SELECT @curRank :=0, @prevRank := NULL) r2

where programmes ="'.$getProgramme.'" and `year` = "'.$getLevel.'" and term = "'.$getTerm.'"
and year = "'.$getYear.'" ORDER BY score Desc) as t3 )'), function($joinn)
{
$joinn->on('regNumber', '=', 'results.regNumber')

})

->where('programmes',$getProgramme)
->where('year',$getYear)
->where('term',$getTerm)
->where('level',$getLevel)
->get();

以下是我想要实现的目标。获取阴影主题位置:

Below is the what i want to achieve. To get the shaded subjectpositions.

最佳答案

假设您使用 Eloquent,您将像这样表示您的实体:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Result extends Model
{
protected $fillable = [
'Reg Number',
'Name',
'Subjects',
'Programmes',
'Year',
'Term',
'score',
'Subject Postion',
];
}

请注意,我使用的列名称与您发布的图片中的名称相同。由于它们与查询列不一致,我选择了图像,因为它包含有关您的表架构的更多信息。

因此对于您的查询:

i want get positions of every subject by student where Programmes = Art and year = 2017 and Term = 1.

你可以这样做

Result::where('Programmes', 'Art')
->where('year', 2017)
->where('Term', 1)
->get()
->pluck('Subject Postion');

再次请注意,我使用的列名和值与示例中的相同。

我可能会标准化列名称,因为我觉得这可能会造成混淆,并且可能无助于您的思考。小写 snake_case 是我的选择。例如:

registration_number, name, subject, programme, year, term, score, subject_position

绝对是前进中要牢记的事情!

关于mysql - 使用 Laravel 获取学生在考试中的位置科目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48842811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com