【问题标题】:How to use subquery in laravel and convert sql query to laravel如何在laravel中使用子查询并将sql查询转换为laravel
【发布时间】:2019-04-01 14:45:08
【问题描述】:

实际上我正在做一些维护项目,以前的开发人员使用核心 sql 查询,但我想转换为 larvel 查询。这是 Sql 查询:-

$directories = DB::select('
        SELECT d.id, d.name, d.url_match, d.login_url, d.register_url, d.notes, d.logo, d.require_verification FROM `directories` d 
        WHERE d.id
        NOT IN (
            SELECT c.directory_id FROM citations c
            INNER JOIN directories d
            WHERE c.directory_id = d.id
            AND d.allow_citation = 1
            AND c.site_id = ' . $siteID .'
        )
        AND d.allow_citation = 1
        AND d.deleted_at IS NULL
        AND d.tier = '. $tier .'
        ORDER BY d.tier ASC         
    ');

我尝试在下面的 laravel 中进行转换:-

 $directories = Directories::select('id','name','url_match','login_url','register_url','notes',
                 'logo','require_verification')
                ->where(['allow_citation'=>1,'tier'=>$tier])
                ->whereNUll('deleted_at')->get();

谁能帮帮我。在此先感谢

【问题讨论】:

    标签: php sql laravel laravel-query-builder


    【解决方案1】:

    谷歌搜索后我终于完成了自己:-

    $directories = Directories::select('id','name','url_match','login_url','register_url','notes','logo','require_verification')->whereNotIn('id', function($query) use($siteID){
            $query->select('citations.directory_id')
                ->from('citations')
                ->whereRaw('directories.id=citations.directory_id')
                ->where('directories.allow_citation', 1)
                ->where('citations.site_id', $siteID);
            })->where(['allow_citation'=>1,'tier'=>$tier])->whereNUll('deleted_at')->get();
    

    【讨论】:

      猜你喜欢
      • 2021-10-11
      • 2017-04-07
      • 1970-01-01
      • 2014-07-12
      • 2019-09-23
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      相关资源
      最近更新 更多