2012-07-17 84 views
0

假設我有一張客戶表(tblClients)和一個引號表(tblQuotes)。SQL超過2個表之間的關係

從我們現有的客戶得到的所有報價,我做了以下內容:

SELECT q.quoteId, c.contact, q.job, 
FROM tblQuotes AS q 
INNER JOIN tblClients AS c ON q.user = c.user 

對於每一個報價,我們得到了引號的創建日期。該日期在tblDate。我發現,用於顯示日期的唯一途徑是當我展示我的記錄,我做的其他要求是這樣的:

SELECT Date 
FROM tblDate 
WHERE id = %1 => %1 is q.quoteId 

一切工作正常,但我還是決定添加交替SQL請求輸入。例如,c.Contact可以是 「約翰」

WHERE c.Contact = 'John' 

怎麼樣Date?我可以很容易地得到q.quoteIdc.Contactq.Job,但我不知道如何使它與Date一起工作。

WHERE c.Contact = 'John' AND ... 
+0

'tblDate'的結構是什麼?當然有一個'quoteId'或者其他可以加入的領域? – LittleBobbyTables 2012-07-17 16:06:09

+0

tblDate上有外鍵嗎? – jeschafe 2012-07-17 16:06:29

回答

2

只需添加另一個連接(使用INNER JOIN假設每個報價有一個日期值):

SELECT 
    q.quoteId, c.contact, q.job, d.Date 
FROM 
    tblQuotes AS q INNER JOIN 
     tblClients AS c ON q.user = c.user INNER JOIN 
      tblDate AS d on d.id = q.quoteId 

然後,您可以修改相應的使用WHERE子句指定任何附加條件:

SELECT 
    q.quoteId, c.contact, q.job, d.Date 
FROM 
    tblQuotes AS q INNER JOIN 
     tblClients AS c ON q.user = c.user INNER JOIN 
      tblDate AS d on d.id = q.quoteId 
WHERE 
    d.Contact = 'John'