Laravel DB ::选择不按预期返回值

时间:2017-03-09 09:52:25

标签: mysql laravel

如果我创建了重复的帖子,我很抱歉。 我在使用db :: select。

查看数据时遇到问题

这是我的完整sql语句[在mysql上按预期测试并返回值]

SELECT tugasan_kontrak.*,sejarah.tkh_wujud AS tkh_wujud ,sejarah.id_tindakan AS id_tindakan 
FROM tugasan_kontrak 
LEFT JOIN sejarah ON(
tugasan_kontrak.id_tugasan = sejarah.id_tugasan AND 
jenis_tugasan='k' AND 
sejarah.id_tindakan !='99' AND
id_sejarah = (SELECT MAX(id_sejarah) FROM sejarah WHERE 
    tugasan_kontrak.id_tugasan = sejarah.id_tugasan AND jenis_tugasan='k') 
)
WHERE pegawai_tugas='890911105098' AND id_tindakan IS NOT NULL

https://github.com/eslint/eslint/issues/6505#issuecomment-282325903

但是当我尝试使用db :: select应用此语句时,没有记录被查看。

这里我用来测试的功能

public function getPenggunaTindakan($value='890911105098')
{
    $kontrak = DB::select("select tugasan_kontrak.*,sejarah.tkh_wujud as tkh_wujud ,sejarah.id_tindakan as id_tindakan 
            from tugasan_kontrak left join sejarah on(tugasan_kontrak.id_tugasan = sejarah.id_tugasan and jenis_tugasan='k' and sejarah.id_tindakan !='99' and
                id_sejarah = (select max(id_sejarah) from sejarah where tugasan_kontrak.id_tugasan = sejarah.id_tugasan and jenis_tugasan='k'))
        where pegawai_tugas=:nokp and id_tindakan is not null ",['nokp' => $value]);

    dd($kontrak);
}

抱歉我的英语不好。 希望任何人都可以建议我做错了什么。 谢谢先进

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

DB::select(DB::raw("select tugasan_kontrak.*,sejarah.tkh_wujud as tkh_wujud ,sejarah.id_tindakan as id_tindakan 
            from tugasan_kontrak left join sejarah on(tugasan_kontrak.id_tugasan = sejarah.id_tugasan and jenis_tugasan='k' and sejarah.id_tindakan !='99' and
                id_sejarah = (select max(id_sejarah) from sejarah where tugasan_kontrak.id_tugasan = sejarah.id_tugasan and jenis_tugasan='k'))
        where pegawai_tugas=:nokp and id_tindakan is not null "),['nokp' => $value]);

如果要注入sql查询,则必须在laravel中使用DB :: raw