我如何构建附加列等于关联行数的MySQL查询?
假设我有两个表我如何构建附加列等于关联行数的MySQL查询?,mysql,Mysql,假设我有两个表Cities和Employees。与一个城市关联的每位员工。我如何构建一个查询,结果是所有城市,并将有额外的列等于与此城市关联的员工数 我尝试了以下方法: SELECT *,COUNT(SELECT * FROM `Employees` WHERE `city_id` = `id`) AS `count` FROM `cities` 但它不起作用 事实上,我不知道我应该去哪里找。希望这里有任何提示。您可以使用cities和employees表之间的内部联接尝试以下查询 SEL
Cities
和Employees
。与一个城市关联的每位员工。我如何构建一个查询,结果是所有城市,并将有额外的列等于与此城市关联的员工数
我尝试了以下方法:
SELECT *,COUNT(SELECT * FROM `Employees` WHERE `city_id` = `id`) AS `count` FROM `cities`
但它不起作用
事实上,我不知道我应该去哪里找。希望这里有任何提示。您可以使用cities和employees表之间的内部联接尝试以下查询
SELECT cities.* ,COUNT( `Employees`.`id`) FROM `cities`
INNER JOIN `Employees` on `Employees`.`city_id` = `cities`.`id`
GROUP BY `cities`.`id`
如果您喜欢旧式SQL,可以尝试以下内容
SELECT cityTable.`name`, employeesTable.employees_count
FROM (SELECT `id`, `name` FROM `Cities`)citiesTable,
(SELECT count(*) as employees_count, `city_id` FROM `Employees`)employeesTable
WHERE citiesTable.`id` = employeesTable.`city_id`
谓词是:给我所有城市,以及属于它们的员工数量
SELECT c.name, COUNT(e.id) cnt
FROM cities c
LEFT JOIN employees e
ON c.id = e.city_id
GROUP BY c.name
如果一个城市没有属于它的员工,这将为您提供cnt为零的所有城市如果我在
城市之间放置,
。
和计数
。你能编辑你的帖子吗?