php - 如何在 Laravel 中编写联合查询?

标签 php mysql laravel laravel-5 union

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

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 代码中将其写入:

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

但我没有显示任何内容。你知道错误在哪里吗?

最佳答案

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

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

关于php - 如何在 Laravel 中编写联合查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37940764/

相关文章:

php - Codeigniter:使用 session 从另一个表获取用户数据

mysql - 具有多个参数的 Golang 数据库/sql.DB.QueryRow

php.activerecord 通配符不起作用吗?

php - 使用个人访问 token 在 Postman 中未经身份验证的 Laravel 5.3 Passport API

php - 通过 Eloquent 查询在多个表中搜索

php - 在配置文件中访问 session 或 Yii

php - FreeTDS - 返回 UTF-8 字符集数据

php - 如何在css中点击事件

PHP/MySql HTML 表分组

laravel - Composer 更新问题