代码之家  ›  专栏  ›  技术社区  ›  waiwai933

何时使用联接

  •  2
  • waiwai933  · 技术社区  · 15 年前

    在我看来,使用联接有两种情况:

    1. 否则数据将被复制
    2. 当一个查询中的数据将在另一个查询中使用时

    这些情景是对的吗?还有其他使用join的场景吗?

    编辑:我想我沟通有误。我理解 怎样 我不太确定的是,加入是可行的 什么时候 使用一个。

    3 回复  |  直到 15 年前
        1
  •  2
  •   jemfinch    15 年前

    当需要来自多个表的信息时,可以使用联接:)

        2
  •  7
  •   Community CDub    8 年前

    连接习惯于 加入 表格和相关信息。

    关键的情况是你可以说

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

    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'
    

    如果希望从左侧的表中检索所有数据,并且只希望从右侧检索匹配的数据,则将使用左联接。

    开始规范化表结构时使用联接。您可以在列上指定一个100s的表,其中许多数据可能为空,或者您可以规范化这些表,从而避免有太多的列具有空值,在这些列中,您可以将适当的数据分组到表结构中。

    这个问题的答案 Question 有一个 非常 具有使用联接的图形显示的良好链接

        3
  •  3
  •   James Westgate    15 年前

    联接用于返回关系数据库中相关的数据。数据可以通过三种方式关联

    • 一对多关系 可以有很多 交易 )
    • 多对多关系 医生 可以有很多 患者 但A 病人 可以有多个 医生 )
    • 一对一关系 只能有一个 护照 数字)

    加入有多种口味:

    • 内部联接将从两个表返回数据,其中每个表中的键匹配
    • 左联接或右联接将返回一个表中的所有行和另一个表中的匹配数据
    • 交叉联接将返回每个表的乘积