Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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 - Fatal编程技术网

Sql 选择用户id不显示在其他表中的命令

Sql 选择用户id不显示在其他表中的命令,sql,Sql,我有以下SQL查询: SELECT users.user_id, users.first_name, users.last_name, roles.role, roles.role_id, users.username, users.description, users_vs_teams.team_id, teams.team_name, teams.status FRO

我有以下SQL查询:

SELECT users.user_id,
       users.first_name,
       users.last_name,
       roles.role,
       roles.role_id,
       users.username,
       users.description,
       users_vs_teams.team_id,
       teams.team_name,
       teams.status
FROM users
     INNER JOIN roles ON users.role_id = roles.role_id
     INNER JOIN users_vs_teams ON users.user_id = users_vs_teams.user_id
     INNER JOIN teams ON users_vs_teams.team_id = teams.team_id
WHERE( users.role_id = 3 )
此查询显示用户角色为3的所有用户以及由于其
用户与团队
表中出现的
用户id
而分配给他们进行冲刺的团队。但是,我想显示与此相反的内容,其中显示角色为3的用户,但在
用户与团队
表中找不到他们的
用户id

任何帮助都将不胜感激。

选择users.user\u id、users.first\u name、users.last\u name、roles.role、roles.role\u id、users.username、users.description、users\u vs\u teams.team\u id、teams.team\u name、teams.status
 SELECT users.user_id, users.first_name, users.last_name, roles.role, roles.role_id, users.username, users.description, users_vs_teams.team_id, teams.team_name, teams.status
 FROM users INNER JOIN roles ON users.role_id = roles.role_id 
            INNER JOIN users_vs_teams ON users.user_id <> users_vs_teams.user_id 
            INNER JOIN teams ON users_vs_teams.team_id = teams.team_id
 WHERE (users.role_id = 3)
从用户内部加入用户上的角色。角色\u id=角色。角色\u id 在用户上内部加入用户与团队。用户id用户与团队。用户id 用户上的内部加入团队与团队。团队id=团队。团队id 其中(users.role_id=3)
更改为左外部联接,并向where子句添加另一个条件。左侧外部联接从左侧的表(此处为用户)中获取所有行,该条件确保只有那些行出现在右侧的表中没有合适匹配的位置(此处为用户对团队)。在下面的查询中,您必须将附加where子句条件中的“pk”更改为实际列,该列是users\u vs\u teams表的主键

SELECT  users.user_id, users.first_name, users.last_name, roles.role, roles.role_id, users.username, users.description, users_vs_teams.team_id, teams.team_name, teams.status
FROM    users 
        INNER JOIN roles ON users.role_id = roles.role_id 
        INNER JOIN teams ON users_vs_teams.team_id = teams.team_id
        LEFT OUTER JOIN users_vs_teams ON users.user_id = users_vs_teams.user_id 
WHERE   (users.role_id = 3)
        AND users_vs_teams.pk IS NULL

改为使用
LEFT JOIN
,在
users\u vs\u teams
表中通过添加
和users\u vs\u teams获得所有
NULL
id。在
WHERE
子句中,user\u id为NULL

 SELECT users.user_id,
        users.first_name,
        users.last_name,
        roles.role,
        roles.role_id,
        users.username,
        users.description,
        users_vs_teams.team_id,
        teams.team_name,
        teams.status
    FROM users
        INNER JOIN roles ON users.role_id = roles.role_id
        INNER JOIN teams ON users_vs_teams.team_id = teams.team_id
        LEFT JOIN users_vs_teams ON users.user_id = users_vs_teams.user_id
    WHERE( users.role_id = 3 )
    AND users_vs_teams.user_id IS NULL

您甚至不需要部件:internal JOIN roles ON users.role\u id=roles.role\u id在我的aspx文件中,我希望显示每个Hindividual的角色,尽管它们都是相同的,但这是客户端所需要的。
 SELECT users.user_id,
        users.first_name,
        users.last_name,
        roles.role,
        roles.role_id,
        users.username,
        users.description,
        users_vs_teams.team_id,
        teams.team_name,
        teams.status
    FROM users
        INNER JOIN roles ON users.role_id = roles.role_id
        INNER JOIN teams ON users_vs_teams.team_id = teams.team_id
        LEFT JOIN users_vs_teams ON users.user_id = users_vs_teams.user_id
    WHERE( users.role_id = 3 )
    AND users_vs_teams.user_id IS NULL