2010-11-05 69 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