Sql 从两个表中获取用户,其中id';它们是不一样的
我遇到了一个针对RESTAPI的漂亮查询。我想听听你的建议 现在我有两张桌子:Sql 从两个表中获取用户,其中id';它们是不一样的,sql,laravel,Sql,Laravel,我遇到了一个针对RESTAPI的漂亮查询。我想听听你的建议 现在我有两张桌子: 公司用户:存储注册用户的主要信息,如: 身份证、姓名、电子邮件、电话号码 匹配用户:存储以下信息: 活动用户标识,匹配用户标识,其中活动用户标识是授权用户标识,匹配用户标识是授权用户以前遇到的任何其他用户标识 问题是:如何执行查询,以便能够获取所有其他用户(授权用户ID除外,以及授权用户以前会遇到的用户) 例如: 表:公司用户 ID |姓名|电子邮件 1 |杰克|jake@gmail.com 2 |简|jane
ID |姓名|电子邮件
1 |杰克|jake@gmail.com
2 |简|jane@gmail.com
3 |雅各布|jacob@gmail.com
4 |六月|june@gmail.com 及 表格:匹配表格 ID |活动用户|匹配用户| ID
1 | 1 | 2
如何为id为3和4的公司\u用户中的仅授权用户执行?获取表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()`
获取表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()`
请试试这个
如果除活动用户ID之外,则
Select * from company_users
Where Id NOT IN ( SELECT Distinct ACTIVE_USER_ID FROM matching_table)
Select * from company_users
Where Id NOT IN ( SELECT Distinct MATCHING_USER_ID FROM matching_table)
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)
如果不匹配用户ID,则
Select * from company_users
Where Id NOT IN ( SELECT Distinct ACTIVE_USER_ID FROM matching_table)
Select * from company_users
Where Id NOT IN ( SELECT Distinct MATCHING_USER_ID FROM matching_table)
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)
如果除活动用户ID和匹配用户ID之外,则
Select * from company_users
Where Id NOT IN ( SELECT Distinct ACTIVE_USER_ID FROM matching_table)
Select * from company_users
Where Id NOT IN ( SELECT Distinct MATCHING_USER_ID FROM matching_table)
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)
请试试这个
如果除活动用户ID之外,则
Select * from company_users
Where Id NOT IN ( SELECT Distinct ACTIVE_USER_ID FROM matching_table)
Select * from company_users
Where Id NOT IN ( SELECT Distinct MATCHING_USER_ID FROM matching_table)
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)
如果不匹配用户ID,则
Select * from company_users
Where Id NOT IN ( SELECT Distinct ACTIVE_USER_ID FROM matching_table)
Select * from company_users
Where Id NOT IN ( SELECT Distinct MATCHING_USER_ID FROM matching_table)
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)
如果除活动用户ID和匹配用户ID之外,则
Select * from company_users
Where Id NOT IN ( SELECT Distinct ACTIVE_USER_ID FROM matching_table)
Select * from company_users
Where Id NOT IN ( SELECT Distinct MATCHING_USER_ID FROM matching_table)
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)