2017-09-25 29 views
0

我有3个表用户,项目,部门。我想从项目表中获得'owner_id'(DCE005)并从users表中获取user_id(2)并获得PM_dceid(DCE003) (DCE003)不在dept_head(DCE004,DCE007,DCE009)中,然后从users表中获取值(3)。可以得到递归数据从数据表中取值

project table 
id owner_id dept_id 
    4 DCE005  005 

users table 
user_id dceid name PM_dceid 
    1 DCE001 user1 DCE003 
    2 DCE005 user2 DCE003 
    3 DCE003 user3 DCE009 

Department table 
id dept-id dept_head 
    2  005  DCE004 
    3  006  DCE007 
    4    DCE009 

query 
$dept= department::pluck('dept_head')->all(); 
$project=DB::table('project') 
     ->join('users', 'project.project_owner_id', '=', 'users.aceid')->whereNotIn('users.id', $dept) 
+0

是的,你必须使用'join'以及'self'加入 –

+0

你可以举一些例子 – user3386779

回答

0

是的,这是可能的。在关键字中使用嵌套选择。

会是这样的:

DB::select(DB::raw('select * from users, IF((SELECT users.PM_dceid FROM project, users WHERE project.owner_id = users.dceid AND project.owner_id= (SELECT owner_id FROM project LIMIT 1)) NOT IN (SELECT dept_head FROM Department)) WHERE id = " '.$yorKey.'" '));

+0

你可以给例如 – user3386779

+0

'获得的价值(3)来自用户表格。你的意思是选择另一个用户表单数据库? – Amin

+0

没有相同的用户表 – user3386779