将查询结果与 MS SQL 中另一个 table 的参数组合

Combine query result with parameter from another table in MS SQL

我有 2 个 table,第一个 table 有域和域的 ID,第二个 table 有与该 ID 对应的客户信息。

使用域名,我需要获取该域的客户信息,这只能通过先获取 ID 并使用该 ID 来获取客户信息来完成。

我能够从域名成功获取客户信息,但问题是,我的最终结果必须有客户信息和与之关联的域名(第二个table没有域名) .

我如何获取客户信息:

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

所以最终结果必须有一个 table 和这样的列

ContactName | EmailAddress | DomainName

我该怎么做?

如果两个表中都有 CustomerID,只需使用 JOIN 即可:

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*)
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*)

您需要在两个表之间进行 JOIN,例如

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');