2010-11-05 74 views
1

如果我被要求查询超过三个表的JOIN,在我编写代码之前理解表之间关系的最佳方法是什么。我应该在SQL Server中使用数据库图表,还是会给我必要的信息?你会推荐什么?关于SQL的一般问题 - 连接

提前感谢您的时间。

+0

我不明白你的问题。 – Oded 2010-11-05 15:03:43

+0

例如,我在Apress Beginning T-SQL 2008中查看练习,第125页的AdventureWorks2008RS db。问了一个问题,写一个查询,显示客户的名字以及他们购买的产品名称。提示:需要5个表来编写这个查询。有很多表格,显然你不能通过每张表来理解一张表可能与另一张表有什么关系,所以我在问什么才是理解哪些表相关的最好方法? – DiscoDude 2010-11-05 15:12:01

回答

1

您可以使用SQL Server Management Studio中的图表工具来发现这些表之间的任何外键关系。它可能比使用GUI在设计模式下检查每个表格并查看其关系对话框更快。

考虑使用这3个表创建一个ad-hoc视图。这将帮助您生成您需要的SQL语句。如果这3个表中存在任何关系,那么您将拥有该工具为您创建的JOIN语句。

  • 右键单击视图 - >新视图。
  • 选取需要的表格,点击添加
  • 所有的关系都显示在图表窗格中,并且SQL窗格将带有所需的JOINS的SELECT语句。

alt text

+0

感谢您的建议 – DiscoDude 2010-11-05 15:15:06

1

取决于他们用于创建外键的约定,它不应该是很难找到表之间的关系。

我们使用的约定是

dbo.TableA(ID PK) 
dbo.TableB(ID PK, TableAID FK) 
dbo.TableC(ID PK, TableBID FK) 
... 

如果他们不使用任何约定的全部或者甚至没有建立外键约束,你可以把它看作一个机会,使他们了解的重要性通过不使用它们的惯例又称为失去的时间和金钱。

+0

感谢您的意见 – DiscoDude 2010-11-05 15:14:40