【发布时间】:2021-09-24 07:47:47
【问题描述】:
我已经加入了 2 张桌子
SELECT ccc.supplier_id as supplier_id, c1.name as supplier, ccc.dealer_id as dealer_id, c2.name as dealer
FROM company_companyconnection ccc
left JOIN companies_company c1 ON c1.id = ccc.supplier_id
left JOIN companies_company c2 on c2.id = ccc.dealer_id
ORDER BY supplier_id ASC
这样我得到的结果如下:
| supplier_id | supplier | dealer_id | dealer |
|---|---|---|---|
| 1 | company1 | 3 | company3 |
| 1 | company1 | 2 | company2 |
| 2 | company2 | 3 | company3 |
现在我想对同一个查询进行 2 次不同的计数,以便我可以看到计数是双向的,例如
| company_id | company | as_supplier_count | as_dealer_count |
|---|---|---|---|
| 1 | company1 | 2 | 0 |
| 2 | company2 | 1 | 1 |
| 3 | company3 | 0 | 2 |
到目前为止我已经做到了
SELECT ccc.supplier_id as company_id, c1.name as company, count(ccc.dealer_id) as as_supplier_connections
FROM company_companyconnection ccc
left JOIN companies_company c1 ON c1.id = ccc.supplier_id
JOIN companies_company c2 on c2.id = ccc.dealer_id
GROUP BY ccc.supplier_id, c1.name
ORDER BY supplier_id ASC
| company_id | company | as_supplier_count |
|---|---|---|
| 1 | company1 | 2 |
| 2 | company2 | 1 |
| 3 | company3 | 0 |
但我在最后阶段遇到了麻烦,任何帮助都会非常感谢您!
【问题讨论】:
标签: sql postgresql join count