如何在Laravel中编写联合查询? [英] How to write union query in Laravel?

查看:67
本文介绍了如何在Laravel中编写联合查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用laravel 5.0,并且我有mysql查询:

I'm using laravel 5.0 and I have mysql query:

SELECT surat_masuk.id_surat, 
       surat_masuk.nomor_surat 
FROM   surat_masuk 
WHERE ! EXISTS (SELECT * 
                 FROM   file_replace 
                 WHERE  id_surat_lama = surat_masuk.id_surat) 
      AND surat_masuk.id_jenis_surat = '6' 
      AND surat_masuk.deleted = '0' 
UNION 
SELECT id_surat_lama 
FROM   file_replace 
WHERE  id_surat_baru = '38'

然后在laravel代码中将其写为:

And I write that in my laravel code into:

$nomor_surat1 = DB::table('surat_masuk')->select('id_surat', 'nomor_surat')
    ->where('id_jenis_surat', '=', $id_jenis_surat)
    ->where(function ($query) {
        $query->where('masa_berlaku_to', '>=', date('Y-m-d'))
            ->orwhere('masa_berlaku_to', '=', '0000-00-00');
    })
    ->whereExists(function ($query) {
        $query
            ->from('file_replace')
            ->where('id_surat_lama', '==', 'surat_masuk.id_surat');
    })
    ->where('deleted', '=', '0');

$nomor_surat = DB::table('file_replace')->join('surat_masuk', 'file_replace.id_surat_lama', '=', 'surat_masuk.id_surat')
    ->select('id_surat_lama', 'nomor_surat')
    ->where('id_surat_baru', '=', $id_surat_baru)
    ->union($nomor_surat1)->get();

但是我什么都没显示.你知道错误在哪里吗?

But I've got nothing showed. Do you know where is the mistakes?

推荐答案

好吧,我终于使用了原始查询..

Well, I finally using raw query..

$results = DB::select( DB::raw("SELECT * FROM some_table WHERE some_col = '$someVariable'") );

这篇关于如何在Laravel中编写联合查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆