gpt4 book ai didi

mysql - 选择命令,其中一个字段必须等于一个值,但另一个字段可以有 2 个值

转载 作者:行者123 更新时间:2023-11-29 11:54:09 25 4
gpt4 key购买 nike

我有以下 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,
teams.notes
FROM teams
INNER JOIN users_vs_teams ON teams.team_id = users_vs_teams.team_id
RIGHT OUTER JOIN users ON users_vs_teams.user_id = users.user_id
INNER JOIN roles ON users.role_id = roles.role_id
WHERE( users.role_id = 3 ) AND ( teams.status = 'Completed' ) OR ( teams.status IS NULL )

我只想显示 role_id3 的用户,但 team.status 可以是 CompletedNULL。但是,此查询会显示 teams.statusCompletedNULL 的所有角色。任何解决此问题的帮助将不胜感激。

最佳答案

首先,我不确定您是否需要外部联接。其次,您的问题似乎是 WHERE 子句中的括号:

SELECT u.user_id, u.first_name, u.last_name, r.role, r.role_id,
u.username, u.description, uvt.team_id,
t.team_name, t.status, t.notes
FROM teams t INNER JOIN
users_vs_teams uvt
ON t.team_id = uvt.team_id INNER JOIN
users u
ON uvt.user_id = u.user_id
roles r
ON u.role_id = r.role_id ON u
WHERE (u.role_id = 3) AND (t.status = 'Completed' OR t.status IS NULL)

请注意,表别名使查询更易于编写和读取。

关于mysql - 选择命令,其中一个字段必须等于一个值,但另一个字段可以有 2 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33490526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com