我有 3 个表用户、项目、部门。我想从项目表中获取“owner_id”(DCE005),从用户表中获取 user_id (2),并获取项目所有者的 PM_dceid (DCE003) 并检查 ( DCE003) 不在部门表的 'dept_head' 列中。如果 (DCE003) 不在 dept_head(DCE004,DCE007,DCE009) 中,则从用户表中获取值 (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)
最佳答案
是的,这是可能的。使用嵌套选择以及 In not in 关键字。
会是这样的:
DB::select(DB::raw('从用户中选择*,IF((从项目中选择users.PM_dceid,用户WHERE project.owner_id = users.dceid AND project.owner_id= (从项目中选择owner_id项目限制 1)) NOT IN (SELECT dept_head FROM Department)) WHERE id = "'.$yorKey.'"'));
关于mysql - 从数据表中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46401507/