如何:手动联接表
当向查询中添加两个或更多表时,查询和视图设计器将尝试根据公共数据或数据库中存储的关于这些表如何相关的信息来联接它们。有关详细信息,请参见 如何:自动联接表。但是,如果查询和视图设计器未自动联接这些表,或者您希望在这些表之间创建其他联接条件,则可手动联接这些表。
除基于包含相同信息的列之外,还可以基于任意两列之间的比较创建联接。例如,如果数据库包含 titles 和 roysched 两个表,则可将 titles 表的 ytd_sales 列中的值与 roysched 表的 lorange 和 hirange 列中的值相比较。创建该联接将使您得以查找特定的书名,这些书截止到目前的年销售额位于版税的最高和最低范围之内。
提示 |
---|
如果联接条件中的列已建立索引,则联接的速度最快。在某些情况下,在没有索引的列上联接可导致查询速度缓慢。有关使用可视化数据库工具创建索引的信息,请参见 使用索引。 |
说明 |
---|
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置。 |
手动联接表或表结构对象
将要联接的对象添加到“关系图”窗格中。
拖动第一个表或表结构对象中的联接列的名称,并将其拖放到第二个表或表结构对象中的相关列上。不能基于 text、ntext 或 image 列进行联接。
说明 联接列必须具有相同(或兼容)的数据类型。例如,如果第一个表中的联接列是日期,则必须将其与第二个表中的日期列相关。另一方面,如果第一个联接列是整数,则相关联接列也必须是整数数据类型,但它的大小可以不同。查询和视图设计器不检查要用来创建联接的列的数据类型,但当您执行查询时,如果数据类型不兼容,数据库将显示错误。
如果需要,请更改联接运算符;默认情况下,该运算符是等号 (=)。有关背景信息,请参见 联接比较运算符。有关详细信息,请参见 如何:修改联接运算符。
查询和视图设计器将 INNER JOIN 子句添加到“SQL”窗格中的 SQL 语句中。可将类型更改为外部联接。有关详细信息,请参见 如何:创建外部联接。