多表左连接
我正在尝试找出一个SQL查询来同时从多个表中提取数据。我有一张公司名单的表格。我还有两个包含每个公司通信的表。目前,我循环遍历每个公司行,然后对每个通信表执行查询。我尝试了一个类似的查询:
SELECT c.*,
count(e.id) AS ecount,
count(p.id) AS pcount
FROM companies c
LEFT JOIN emails e
ON c.id = epany
LEFT JOIN push p
ON c.id = ppany
但此查询的结果只包含一个公司,没有计数。我该如何完成此查询?
回答如下:SELECT c.*,
(SELECT COUNT(e.id) FROM emails e WHERE epany = c.id) as ecount,
(SELECT COUNT(p.id) FROM push p WHERE ppany = c.id) as pcount
FROM companies c
多表左连接
我正在尝试找出一个SQL查询来同时从多个表中提取数据。我有一张公司名单的表格。我还有两个包含每个公司通信的表。目前,我循环遍历每个公司行,然后对每个通信表执行查询。我尝试了一个类似的查询:
SELECT c.*,
count(e.id) AS ecount,
count(p.id) AS pcount
FROM companies c
LEFT JOIN emails e
ON c.id = epany
LEFT JOIN push p
ON c.id = ppany
但此查询的结果只包含一个公司,没有计数。我该如何完成此查询?
回答如下:SELECT c.*,
(SELECT COUNT(e.id) FROM emails e WHERE epany = c.id) as ecount,
(SELECT COUNT(p.id) FROM push p WHERE ppany = c.id) as pcount
FROM companies c