我最初的疑问是
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不是有效的列名.
你能帮我改正错误吗?