在查询中,我从三个表中获取数据:company
,classes_by_company
和person
。我在名称为company_id
的所有表中都有一个外键。我使用左连接来匹配表格,匹配company_id
。我试图找出每个公司和员工的班级数量。我得到的值都不正确。这里是一个SQIDDLE使用涉及外键的计数查询
SELECT a.id,
a.company_id,
a.status,
COUNT(c.company_id) AS classes_per_company,
COUNT(p.employee_id) AS employees_per_company
FROM company a
LEFT JOIN classes_by_company c
ON a.company_id = c.company_id
LEFT JOIN person p
ON a.company_id = p.company_id
GROUP BY a.company_id
表结构:
CREATE TABLE company
(
id int auto_increment primary key,
company_id int,
status varchar(20)
);
CREATE TABLE classes_by_company
(
id int auto_increment primary key,
company_id int,
class_name varchar(20)
);
CREATE TABLE person
(
id int auto_increment primary key,
employee_id int,
company_id int,
person_name varchar(20)
);
*“每个公司和员工的课程”* ..您能向我们展示您想要的结果集吗? – Kermit
@FreshPrinceOfSO哦,是的!对不起,我会马上补充。 – techAddict82