Mysql 列出每位工作人员处理的财产数量
列出他们的名字和姓氏以及拥有的财产数量 还需要包括不拥有任何财产但计数为0的员工 这里我有与staffNo有关的员工和财产 此查询仅显示拥有某个属性的员工及其拥有的人数,而不显示不拥有任何属性的员工Mysql 列出每位工作人员处理的财产数量,mysql,sql,Mysql,Sql,列出他们的名字和姓氏以及拥有的财产数量 还需要包括不拥有任何财产但计数为0的员工 这里我有与staffNo有关的员工和财产 此查询仅显示拥有某个属性的员工及其拥有的人数,而不显示不拥有任何属性的员工 SELECT S.branchNo , fName , lName , S.staffNo , COUNT(*) AS "count" FROM Staff S , PropertyForRent P WHERE S.staffNo = P
SELECT S.branchNo
, fName
, lName
, S.staffNo
, COUNT(*) AS "count"
FROM Staff S
, PropertyForRent P
WHERE S.staffNo = P.staffNo
GROUP
BY S.branchNo
, S.staffNo
ORDER
BY S.staffNo;
如果您需要包括没有属性的工作人员,请考虑
左加入
。你知道那是什么吗?您正在使用隐式联接。您需要学习正确、明确、标准的join
语法。它更强大,它做你想做的事
SELECT s.fName, s.lName, COUNT(P.staffNo) AS "count
FROM Staff S LEFT JOIN
PropertyForRent P
ON S.staffNo = P.staffNo
GROUP BY fName, lName
ORDER BY S.staffNo;
您不应该在
选择中包含无关的列。如果您想要员工编号或其他列,则还应将其包括在分组依据中
如果您需要包括没有属性的员工,请考虑左加入
。你知道那是什么吗?您正在使用隐式联接。您需要学习正确、明确、标准的join
语法。它更强大,它做你想做的事
SELECT s.fName, s.lName, COUNT(P.staffNo) AS "count
FROM Staff S LEFT JOIN
PropertyForRent P
ON S.staffNo = P.staffNo
GROUP BY fName, lName
ORDER BY S.staffNo;
您不应该在选择中包含无关的列。如果您需要员工编号或其他列,则还应将其包括在分组中,并按
- 不要使用隐式联接李>
- 要获取不带任何属性的所有staff-members、event,您需要使用(最左边的表是
staff
table)。这允许Staff
表的所有行进入结果(即使PropertyForRent
表中没有匹配的条目)
使用以下查询:
SELECT S.branchNo, fName, lName, S.staffNo,
IFNULL(COUNT(*),0) AS "count"
FROM Staff S
LEFT JOIN PropertyForRent P ON S.staffNo = P.staffNo
GROUP BY S.branchNo, S.staffNo
ORDER BY S.staffNo
- 不要使用隐式联接李>
- 要获取不带任何属性的所有staff-members、event,您需要使用(最左边的表是
staff
table)。这允许Staff
表的所有行进入结果(即使PropertyForRent
表中没有匹配的条目)
使用以下查询:
SELECT S.branchNo, fName, lName, S.staffNo,
IFNULL(COUNT(*),0) AS "count"
FROM Staff S
LEFT JOIN PropertyForRent P ON S.staffNo = P.staffNo
GROUP BY S.branchNo, S.staffNo
ORDER BY S.staffNo
远离隐式连接远离隐式连接