【问题标题】:Selecting count of exist rows in other table and join it to our SQL server table选择其他表中存在的行数并将其加入我们的 SQL 服务器表
【发布时间】:2016-11-23 12:45:30
【问题描述】:
我在 SQL Server 中有两个表。第一个是客户信息表,第二个包括所有购买,
在第一个表中,我有我们客户的 id,而购买表虽然有谁购买了该产品的 id。那么如何选择所有客户表,其中包括他们购买产品的次数?
我试过这个
SELECT TOP 2000 COUNT(tblpurchase.id) as id2,tblcustomers.* From tblpurchase
right join on tblpurchase.id=tblcustomers.id
但没有说话。我该如何解决这个问题?
【问题讨论】:
标签:
sql-server
tsql
select
join
count
【解决方案1】:
使用外部应用
SELECT TOP 2000 tblcustomers.* ,M.CustomerCount
From tblcustomers
OUTER APPLY(
SELECT COUNT(*) as CustomerCount
from tblpurchase
WHERE tblpurchase.CustomerIDColumn = tblcustomers.id
)M
这里tblpurchase.CustomerIDColumn使用customerID列的实际名称
【解决方案2】:
您也可以使用LEFT JOIN
SELECT TOP 2000
C.*,
P.CustomerCount
From
tblcustomers C LEFT JOIN
(
SELECT
TP.CustomerId,
COUNT(*) as CustomerCount
FROM
tblpurchase TP
GROUP BY
TP.CustomerId
) P ON C.Id = P.CustomerId