简体   繁体   English

左联接2次原始查询laravel不起作用(Laravel)

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

I tried my raw query sql in laravel and i need to left join it 2 times but the print out is wrong. 我在laravel中尝试了原始查询sql,我需要将其连接2次,但打印出的错误。 It different from mysql. 它不同于mysql。 I've tried in mysql and it works well 我在mysql中尝试过,效果很好

this is my code : 这是我的代码:

$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
            "));

it works really well in sql but when i put it in laravel kh_infocode change and the value same like khp_infocode even though kh_infocode has different value with khp_infocode 它在sql中确实很好用,但是当我将它放在laravel中时kh_infocode更改,并且值与khp_infocode相同,即使kh_infocode与khp_infocode的值不同

Everything is in the official docs. 一切都在官方文档中。 It's not even long, go give it a read. 时间不长,请阅读一下。

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