我最初的疑问是

    select distinct positions.pid, positions.eid, positions.name as position_name, elections.name as election_name, candidates.uname, firstname, surname 
from positions 
    inner join elections on positions.eid = elections.eid 
    inner join candidates on positions.pid = candidates.pid 
    inner join erole2 on candidates.uname = erole2.clogin 
    where elections.complaints_deadline <= CURRENT_TIMESTAMP;

我在laravel控制器中编写了上述查询,如下所示

$positions = DB::table('positions')
        ->join('elections', 'positions.eid', '=', 'elections.eid')
        ->join('candidates', 'positions.pid', '=', 'candidates.pid')
        ->join('erole2', 'candidates.uname', '=', 'erole2.clogin')
        ->select('positions.pid', 'positions.eid', 'positions.name as position_name', 'elections.name as election_name', 'candidates.uname', 'firstname', 'surname')
        ->where('elections.complaints_deadline', '<=', 'CURRENT_TIMESTAMP')
        ->distinct()->get();

But its not giving the same result. The original query returning 12 rows whereas the query I have written in my controller is returning an empty set. What i am doing wrong. How to write that query in laravel. I am using larvel 9.0

第二,

在上面的代码中,我try 这样编写SELECT子句

 ->select('positions.pid', 'positions.eid', 'positions.name as position_name', 'elections.name as election_name', 'candidates.uname', '"CONCAT('firstname','surname') AS fullname"')

但是我收到错误消息,说Concat不是有效的列名.

你能帮我改正错误吗?

推荐答案

您将CURRENT_TIMESTAMP用作字符串,而不是MySQL函数.为此,您需要使用DB::raw()函数.您也可以使用DB::raw()作为名称.

尝尝这个

$positions = DB::table('positions')
    ->join('elections', 'positions.eid', '=', 'elections.eid')
    ->join('candidates', 'positions.pid', '=', 'candidates.pid')
    ->join('erole2', 'candidates.uname', '=', 'erole2.clogin')
    ->select('positions.pid', 'positions.eid', 'positions.name as position_name', 'elections.name as election_name', 'candidates.uname', DB::raw('CONCAT(firstname, " ", surname) AS fullname'))
    ->where('elections.complaints_deadline', '<=', DB::raw('CURRENT_TIMESTAMP'))
    ->distinct()->get();

Php相关问答推荐

WooCommerce:有条件地更改特定区域的发货类别

Symfony装置加载:try 从命名空间加载类";ClassUtils";Doctrine\Common\Util";

从含有特殊字符的ANSI文本文件中读取数据是在移值,为什么?

在WooCommerce我的帐户部分添加带有自定义链接的自定义菜单项

为什么正则表达式与得到的文本块之前得到的也行?

将部分产品排除在WooCommerce的计算附加费之外

如何在PHP中出现弃用警告时触发错误?

创建一个Woocommerce我的帐户订单页面,仅显示已完成的订单

使用DOMPDF获取PDF格式的本 map 像

可以';exec、system和shell_exec PHP函数中的命令字符串上的字符数不得超过8175

隐藏WooCommerce管理子菜单;主页;来自store 经理

在 Woocommerce 邮箱订单中显示产品 GTIN

Docker-用于部署的 PHP 应用程序映像无法在本地运行

如何更新 Laravel Eloquent 列强制转换为集合

调度程序不发送任何消息

通过ajax发送数据到下拉列表未完全设置为所选

将图像作为 PHP post 响应发送到浏览器

使用 PHP 的 OAuth 2.0 MAC

输出每个可能的产品选项

遇到特定键时修改二维数组以创建嵌套数据集