Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从两个表中获取用户,其中id';它们是不一样的_Sql_Laravel - Fatal编程技术网

Sql 从两个表中获取用户,其中id';它们是不一样的

Sql 从两个表中获取用户,其中id';它们是不一样的,sql,laravel,Sql,Laravel,我遇到了一个针对RESTAPI的漂亮查询。我想听听你的建议 现在我有两张桌子: 公司用户:存储注册用户的主要信息,如: 身份证、姓名、电子邮件、电话号码 匹配用户:存储以下信息: 活动用户标识,匹配用户标识,其中活动用户标识是授权用户标识,匹配用户标识是授权用户以前遇到的任何其他用户标识 问题是:如何执行查询,以便能够获取所有其他用户(授权用户ID除外,以及授权用户以前会遇到的用户) 例如: 表:公司用户 ID |姓名|电子邮件 1 |杰克|jake@gmail.com 2 |简|jane

我遇到了一个针对RESTAPI的漂亮查询。我想听听你的建议

现在我有两张桌子:

  • 公司用户:存储注册用户的主要信息,如: 身份证、姓名、电子邮件、电话号码
  • 匹配用户:存储以下信息: 活动用户标识,匹配用户标识,其中活动用户标识是授权用户标识,匹配用户标识是授权用户以前遇到的任何其他用户标识 问题是:如何执行查询,以便能够获取所有其他用户(授权用户ID除外,以及授权用户以前会遇到的用户)

    例如:

    表:公司用户


    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)