我偶然地查询了Rest API。想听听您的建议。
现在我有两个表:
问题是:如何执行查询以获取所有其他用户(授权用户ID除外,以及授权用户之前曾与之见过的用户)?
例如:
TABLE: company_users
ID | NAME |电子邮件
1 |杰克jake@gmail.com
2 |简| jane@gmail.com
3 |雅各布| jacob@gmail.com
4 |六月| june@gmail.com
和
TABLE: matching_table
ID | ACTIVE_USER_ID | MATCHING_USER_ID
1 | 1 | 2
我如何只为授权用户执行来自 company_users ID为3和4的用户?
答案 0 :(得分:0)
获取表2的所有行:
$matching_rows = MatchingTable::all();
$active_users = $matching_rows->pluck('active_user_id')->toArray();
$matching_users = $matching_rows->pluck('active_user_id')->toArray();
将它们合并在一起:
$auth_users = array_merge($active_users, $matching_users);
使用whereNotIn:
$unauth_users = Users::whereNotIn('id', $auth_users)->get()`
答案 1 :(得分:0)
请尝试这个。
如果不是ACTIVE_USER_ID,则
Select * from company_users
Where Id NOT IN ( SELECT Distinct ACTIVE_USER_ID FROM matching_table)
如果不包含MATCHING_USER_ID,则
Select * from company_users
Where Id NOT IN ( SELECT Distinct MATCHING_USER_ID FROM matching_table)
如果不是ACTIVE_USER_ID和MATCHING_USER_ID,那么
Select * from company_users
Where Id NOT IN ( SELECT Distinct MATCHING_USER_ID FROM matching_table)
AND Id NOT IN ( SELECT Distinct ACTIVE_USER_ID FROM matching_table)