2015-05-28 71 views
-1

我有2個表,第1個表具有域和域ID,第2個表具有與該ID相對應的客戶信息。將查詢結果與MS SQL中另一個表的參數結合使用

使用域名,我需要獲得該域的客戶信息,這隻能通過首先獲取ID並使用該ID來獲取客戶信息來完成。

我能夠成功從域名獲取客戶信息,但問題是,我的最終結果必須有客戶信息和與之關聯的域名(第二個表沒有域名)。

我如何獲得客戶信息:

SELECT ContactName, EmailAddress 
FROM [Database].[dbo].[Customers] 
WHERE CustomerID IN (
    SELECT CustomerID 
    FROM [Database].[dbo].[Domains] 
    WHERE DomainName IN (*list of domains*) 
    ) 

所以最終的結果必須與列的表像這樣

ContactName | EmailAddress | DomainName 

我怎麼會去嗎?

回答

0

只需使用一個JOIN要做到這一點,如果你在兩個表中有CustomerID

SELECT c.ContactName, c.EmailAddress, d.DomainName 
FROM [Database].[dbo].[Customers] c 
INNER JOIN [Database].[dbo].[Domains] d on d.CustomerID = c.CustomerID 
WHERE DomainName IN (*list of domains*) 
+0

這幫助,謝謝您。 – graciov

0
SELECT c.ContactName, c.EmailAddress,d.DomainName 
FROM [Database].[dbo].[Customers] c, 
join [Database].[dbo].[Domains] d 
on c.CustomerID = d.CustomerID 
WHERE d.DomainName IN (*list of domains*) 
+1

儘管這篇文章可能會回答這個問題,但添加一些解釋以及可能的相關文檔的鏈接仍是一個好主意。具有良好解釋和參考的答案通常對當前OP和未來訪問者都更有用。詳盡的答案也更有可能吸引積極的選票。 –

0

你需要兩個表之間的連接,像

SELECT 
    c.ContactName, 
    c.EmailAddress, 
    d.DomainName 
FROM 
    Customers c 
    INNER JOIN 
    Domains d 
    ON 
    c.CustomerID = d.CustomerID 
WHERE 
    d.DomainName IN ('Google', 'Yahoo'); 
相關問題