何时使用JOIN

wai*_*933 2 sql join

在我看来,有两种情况可以使用JOIN:

  1. 否则数据将被复制
  2. 否则,来自一个查询的数据将用于另一个查询

这些情况是对的吗?是否还有其他使用JOIN的方案?

编辑:我想我错误传达了.我理解JOIN是如何工作的,我不确定的是什么时候使用它.

Adr*_*der 7

连接是用于JOIN与相关信息表一起.

在你可以说的地方,有一些典型的情况

用户表具有特定安全设置的用户表.将使用连接,以便您可以确定用户具有哪些设置.

Users
-UserID
-UserName

UserSecurityRoles
-UserID
-SecurityRoleID

SecurityRoles
-SecurityRoleID
-SecurityRole

SELECT *
FROM Users u INNER JOIN
UserSecurityRoles usr ON u.UserID = usr.UserID INNER JOIN
SecurityRoles sr ON usr.SecurityRoleID = sr.SecurityRoleID
WHERE sr.SecurityRole = 'Admin'
Run Code Online (Sandbox Code Playgroud)

LEFT连接将用于您希望从左侧表中检索所有数据的情况,以及仅从右侧匹配的数据.

当您开始规范化表结构时,将使用JOINS.您可以在列上创建一个包含100个表的表,其中许多数据可能为NULL,或者您可以规范化表,这样可以避免使用包含空值的过多列,从而将适当的数据分组到表结构中.

这个问题的答案有一个非常好的链接,它具有使用JOIN的图形显示