将查询结果与 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');
我有 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');