Sql 选择用户id不显示在其他表中的命令
我有以下SQL查询: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
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