Php Laravel:在DB::raw()中使用别名时未知列

Php Laravel:在DB::raw()中使用别名时未知列,php,mysql,laravel,query-builder,Php,Mysql,Laravel,Query Builder,我正在Laravel中运行以下SQL: $sql = 'SELECT university.id, university.name, MAX(uni_score) AS score FROM (SELECT uni_id, place AS uni_score FROM ranking) AS tmp LEFT JOIN university ON university.id = tmp.uni_id ORDER BY score'; $result = DB::select(DB::raw(

我正在Laravel中运行以下SQL:

$sql = 'SELECT university.id, university.name, MAX(uni_score) AS score
FROM (SELECT uni_id, place AS uni_score FROM ranking) AS tmp
LEFT JOIN university ON university.id = tmp.uni_id
ORDER BY score';

$result = DB::select(DB::raw($sql));
但是,代码会引发以下错误:

未找到列:“字段列表”中的1054未知列“uni_分数”

uni_分数是排名表中位置字段的别名。当直接在phpMyAdmin中运行时,上面的查询工作正常


我做错了什么?

尝试使用DB::statement$query;方法。

尝试使用以下命令查看Laravel运行的确切查询:$queries=DB::getQueryLog$last_query=结束$querys;dd$上次查询;查看是否发生了意外情况。问题是我无法这样做,因为由于抛出的错误,查询被中止。我很确定这是Laravel的查询生成器问题,而不是真正的SQL错误。我只是不知道怎么解决。哦,对了,那会发生的。嗯。我唯一能想到的就是改变你的DB::select。。。对DB::connectionconnection_name->selectDB::raw$sql;的语句;,这就是我所有DB::raw语句的方式,这是我能看到的唯一区别。我不认为这会有帮助,但还是尝试了。不走运。是的,我也没有。只适用于多个数据库连接,但值得一试。最后一件要尝试的事情,杂交你的选择。在查询生成器无法工作的地方使用Model::select和DB::raw。