仅当所有行匹配时 SQL 连接才返回结果

1 mysql sql sql-server join inner-join

这是我第一次访问该网站,所以请保持温柔。我试图在这里找到我的答案,但似乎没有什么符合要求,并且在阅读了不同类型的连接之后,我仍然一无所知。

我有以下表格:

employees (employee_id, name)
assessments (assessment_id, name, pass_score)
authorizations (authorization_id, name)
Run Code Online (Sandbox Code Playgroud)

员工进行登录后的评估:

assessments_taken (assessment_taken_id, employee_id, assessment_id, score)
Run Code Online (Sandbox Code Playgroud)

授权由多项单独评估组成:

authorization_requirements (auth_req_id, authorization_id, assessment_id)
Run Code Online (Sandbox Code Playgroud)

其中authorization_id&assessment_id是唯一约束,以防止该对重复。

我尝试设计的查询大致如下:

SELECT employees.name, authorization.name ...
Run Code Online (Sandbox Code Playgroud)

我只想返回员工和授权,其中员工已经通过了authorization_requirements中给出的授权的所有评估。

谁能帮我找到我正在寻找的查询/子查询?

小智 5

下图可能会对您学习 SQL 连接有所帮助 - 它甚至为您提供了一些 SQL 本身!至于authorization_requirements,听起来您需要在连接中使用一些WHERE子句。

希望这对您有所帮助,如有任何疑问,请随时询问!

sql连接