适用于:SQL Server
如果表格被联接,查询和视图设计器工具(Visual Database Tools)会在关系图窗格(Visual Database Tools)中以图形方式表示联接,并在SQL 窗格(Visual Database Tools)中使用 SQL 语法来表示。
图表窗格
在“关系图”窗格中,查询和视图设计器显示联接中涉及的数据列之间的联接线。 查询和视图设计器为每个联接条件显示一条联接线。 例如,下图显示了两个已联接的表之间的连接线:
如果使用多个联接条件联接表,则查询和视图设计器将显示多个联接行,如以下示例所示:
如果未显示联接的数据列(例如,表示表或表结构化对象的矩形最小化或联接涉及表达式),查询和视图设计器会将联接线置于表示表或表结构化对象的矩形的标题栏中。
联接线中间图标的形状指示表或表结构化对象的联接方式。 如果 join 子句使用非相等运算符(=),则该运算符将显示在联接行图标中。 下表列出了联接行中显示的图标。
"连接线"图标 | DESCRIPTION |
---|---|
![]() |
内部联接(使用等 = 号创建)。 |
![]() |
基于“大于” > 运算符的内部联接。 |
![]() |
包括左侧表示的表中的所有行的外部联接,即使这些行在相关表中没有匹配项也是如此。 |
![]() |
包括右侧表示的表中的所有行的外部联接,即使这些行在相关表中没有匹配项也是如此。 |
![]() |
包含这两个表中的所有行的完整外部联接,即使这些行在相关表中没有匹配项也是如此。 |
联接行末尾的符号表示联接的类型。 下表列出了联接行末尾显示的联接类型和图标。
连接线末端的图标 | 联接类型 |
---|---|
![]() |
一对一联接。 |
![]() |
一对多联接。 |
![]() |
查询和视图设计器无法确定联接类型。 手动创建联接时,通常会发生这种情况。 |
SQL 窗格
可以在 SQL 语句中以多种方式表示联接。 确切的语法取决于所使用的数据库以及定义联接的方式。
联接表的语法选项包括:
JOIN
子句的FROM
限定符。 关键字 INNER 并OUTER
指定联接类型。 此语法是 ANSI 92 SQL 的标准。例如,如果基于每个表中的
publishers
列联接pub_info
和pub_id
表,生成的 SQL 语句可能如下所示:SELECT * FROM publishers INNER JOIN pub_info ON publishers.pub_id = pub_info.pub_id;
如果创建外部联接,则单词
LEFT OUTER
或RIGHT OUTER
显示代替 INNER 一词。WHERE
子句比较这两个表中的列。 如果数据库不支持WHERE
语法(或者你自己输入该子句),则会出现一个JOIN
子句。 如果在WHERE
条款中创建联接,则这两个表名将出现在FROM
条款中。例如,以下语句联接
publishers
和pub_info
表。SELECT * FROM publishers, pub_info WHERE publishers.pub_id = pub_info.pub_id;