簡體   English   中英

左聯接2次原始查詢laravel不起作用(Laravel)

[英]Left join 2 times raw query laravel doesn't work (Laravel)

我在laravel中嘗試了原始查詢sql,我需要將其連接2次,但打印出的錯誤。 它不同於mysql。 我在mysql中嘗試過,效果很好

這是我的代碼:

$tabel = DB::SELECT(DB::RAW("
            SELECT codeh.info_code kh_infocode, codep.no_code khp_nocode, 
            codep.info_code khp_infocode, 
            codep.name_code khp_namecode, t.* FROM transactions t 
            LEFT JOIN users u ON t.user_id=u.id
            LEFT JOIN divisions d ON d.id=u.division_id
            LEFT JOIN all_codes codep ON t.code_p_id=codep.id
            LEFT JOIN all_codes codeh ON t.allcode_id=codeh.id
            WHERE 1=1
            AND d.id=$div_id
            AND codep.no_code LIKE '$allcode->no_code%'
            $db_date
            ORDER BY t.date, khp_nocode
            "));

它在sql中確實很好用,但是當我將它放在laravel中時kh_infocode更改,並且值與khp_infocode相同,即使kh_infocode與khp_infocode的值不同

一切都在官方文檔中。 時間不長,請閱讀一下。

DB::table('transactions as t')
->select(
    'codeh.info_code',
    'kh_infocode',
    'codep.no_code',
    'khp_nocode',
    'codep.info_code',
    'khp_infocode',
    'codep.name_code',
    'khp_namecode',
    't.*',
)
->leftJoin('users as u', 't.user_id', '=', 'u.id')
->leftJoin('all_codes as codep', 't.code_p_id', '=', 'codep.id')
->leftJoin('all_codes as codeh', 't.allcode_id', '=', 'codeh.id')
->where('d.id', '=', $div_id)
->where('codep.no_code', 'like', $allcode->no_code.'%')
->orderBy('t.date')
->orderBy('khp_nocode')
->get();

只需直接設置SQL字符串即可,無需DB :: RAW()

$tabel = DB::SELECT('your select statment');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM