首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在laravel中实现oracle查询从不同表中选择

如何在laravel中实现oracle查询从不同表中选择
EN

Stack Overflow用户
提问于 2019-02-18 03:39:18
回答 1查看 351关注 0票数 0

我正在尝试从laravel中的不同表中选择distinct。在oracle中,我已经成功地实现了查询和工作。现在我正试着把它“翻译”成laravel。我该怎么做呢?

在oraclesql中,查询如下所示。临时表和此查询中使用的所有其他表一样存在。使用DB::raw可以做到这一点吗?你能给我提个建议吗?

代码语言:javascript
运行
复制
INSERT INTO TEMP (OBJECT_TYPE, OBLECT_ID)
SELECT DISTINCT HRP1001_CG.OBJECT_TYPE, HRP1001_CG.OBJECT_ID FROM HRP1001_SC, HRP1001_CG, CONFIG
WHERE
(HRP1001_SC.OBJECT_TYPE = 'CG')  
AND
(HRP1001_SC.REL_OBJ_TYPE = 'SC')   
AND
(HRP1001_SC.REL_OBJ_ID = CONFIG.SC)
AND
((HRP1001_SC.ST_DATE < CONFIG.DES_DATE) AND (HRP1001_SC.END_DATE > CONFIG.DES_DATE)) 
AND
(HRP1001_CG.REL_OBJ_ID = HRP1001_SC.OBJECT_ID)
AND
((HRP1001_CG.OBJECT_TYPE ='CG') OR (HRP1001_CG.OBJECT_TYPE ='SM'))
ORDER BY HRP1001_CG.OBJECT_ID;

更新:我也尝试了这段代码,但也没有收到任何结果:(。

代码语言:javascript
运行
复制
$data = DB::table('hrp1001_sc')
            ->join('config', 'config.sc', '=', 'hrp1001_sc.rel_obj_id')
            ->join('config', 'config.des_date', '>', 'hrp1001_sc.st_date')
            ->join('config', 'config.des_date', '<', 'hrp1001_sc.end_date')
            ->join('hrp1001_cg', 'hrp1001_cg.rel_obj_id', '=', 
             'hrp1001_sc.object_id')
            ->where('hrp1001_sc.object_type', '=', 'cg')
            ->where('hrp1001_sc.rel_obj_type', '=', 'sc')
            ->select('hrp1001_sc.object_id')
            ->distinct()
            ->get();
EN

Stack Overflow用户

回答已采纳

发布于 2019-02-21 04:58:19

找到了解决方案,就是这样:

代码语言:javascript
运行
复制
$q = "insert into temp(object_type, object_id)";
    $q = $q."select distinct hrp1001_cg.object_type, hrp1001_cg.object_id from 
    hrp1001_cg, hrp1001_sc, config where";
    $q =$q." hrp1001_sc.object_type = 'CG'";
    $q = $q." and hrp1001_sc.rel_obj_type = 'SC'";
    $q = $q." and hrp1001_sc.rel_obj_id = config.sc";
    $q = $q." and hrp1001_sc.st_date < config.des_date";
    $q = $q." and hrp1001_sc.end_date > config.des_date";
    $q = $q." and hrp1001_cg.rel_obj_id = hrp1001_sc.object_id";
    $q = $q." and";
    $q = $q." ((hrp1001_cg.object_type = 'CG') or (hrp1001_cg.object_type = 'SM'))";

    $xx = DB::insert($q);
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54736923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档