[英]Count Results from a Select in a Join
I have this query that works as I need. 我有这个查询,可以根据需要工作。 However I would like to have a column showing number of times a record repeats.
但是,我想有一列显示记录重复的次数。
The query: 查询:
SELECT total.Total, subqry.Company AS Supplier, company.Company AS Customer, purchase_details.CompanyID, product.Description1, purchase_details.PurchaseID, purchase_details.PurchaseCreated, purchase_details.Completed, purchase_details.OriginalOrd FROM purchase_details LEFT JOIN product ON purchase_details.PartNumber = product.PartNumber LEFT JOIN orders ON purchase_details.OriginalOrd = orders.OrderID LEFT JOIN contact ON orders.ContactLinkID = contact.ID LEFT JOIN company ON contact.LinkID = company.LinkID LEFT JOIN (SELECT company.Company, purchase_details.CompanyID FROM company LEFT JOIN purchase_details ON company.ID = purchase_details.CompanyID) AS subqry ON purchase_details.CompanyID = subqry.CompanyID LEFT JOIN (SELECT OriginalOrd, count(DISTINCT CompanyID) AS Total FROM purchase_details GROUP BY OriginalOrd) AS total ON purchase_details.OriginalOrd = total.OriginalOrd WHERE purchase_details.Completed = $show AND (subqry.Company LIKE :search OR company.Company LIKE :search OR product.Description1 LIKE :search OR purchase_details.PartNumber LIKE :search OR purchase_details.PurchaseID LIKE :search OR purchase_details.OriginalOrd LIKE :search) GROUP BY PurchaseID
The company id column returns: 公司ID列返回:
504 1739 504 1389 504
I would like to return the info below so ideally in a join: 我想在联接中理想地返回以下信息:
504 | 3 1739 | 1 504 | 3 1389 | 1 504 | 3
I will use this column in the php application to trigger other functions. 我将在php应用程序中使用此列来触发其他功能。
Thanks in advance 提前致谢
use group by company_id 使用company_id分组
select count(company_id) as c
from table_name
group by company_id;
Add company_id to the GROUp BY list after PurchaseID and add another column count(DISTINCT company_id) company_count to the select. 在PurchaseID之后将company_id添加到GROUP BY列表中,然后将另一个列计数(DISTINCT company_id)company_count添加到选择中。
SELECT
....//other columns
count(DISTINCT purchase_details.CompanyID) company_count
FROM
...//rest of queries
GROUP BY purchase_details.CompanyID,PurchaseID
;
This bit looks odd... 这有点奇怪...
SELECT c.Company
, pd.CompanyID
FROM company c
LEFT
JOIN purchase_details pd
ON c.ID = pd.CompanyID
You're selecting no information from purchase_details that's not already present in company. 您没有从Purchase_details中选择公司中不存在的信息。 So why bother?
那为什么要麻烦呢?
Also, what might ":search" actually look like? 另外,“:search”实际可能是什么样子?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.