Laravel查询生成器:将`Case`与`Joins`一起使用

问题描述

我正在尝试在psql中复制以下laravel查询:

SELECT 
    DISTINCT 
    I.id,T.id,T.name,I.first_name,I.middle_name,I.last_name,I.dob,CASE WHEN NOT E.email IS NULL THEN '<<' ELSE '' END
FROM  individuals AS I 
LEFT JOIN titles AS T ON I.title_id = T.ID 
LEFT JOIN individuals_emails_map AS IEM ON IEM.individual_id = I.id 
LEFT JOIN emails AS E ON E.id = IEM.email_id;

当我使用查询生成器并写:

DB::table('individuals AS I')
    ->join('titles AS T','T.id','=','I.title_id')
    ->leftjoin('individuals_emails_map AS IEM','IEM.individual_id','I.id')
    ->leftjoin('emails AS E','E.id','IEM.email_id')
    ->distinct('I.title_id','T.name','I.first_name','I.middle_name','I.last_name','I.dob')
    ->select('T.id','I.dob')
    ->get();

...它工作正常,但是当我尝试插入CASE行时:

DB::table('individuals AS I')
    ->join('titles AS T','I.dob',DB::raw("CASE WHEN NOT E.email IS NULL THEN '<<' ELSE '' END"))
    ->get();

...我收到以下错误:

 Undefined table: 7 ERROR:  missing FROM-clause entry for table "e"

我在做什么错了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)