2017-09-25 68 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