#mysql
#mysql
Вопрос:
Я хочу получить каждое количество данных, объединив две таблицы в MySQL. Это сценарий, в котором у меня есть следующие таблицы. emp_tab(name, dept_id )
и dept_tab(dept_id, dept_name)
. Я хочу написать запрос, чтобы показать количество сотрудников в каждом отделе с названием отдела.
пробный код:
SELECT dept_tab.dept_name, number
FROM emp_tab
INNER JOIN dept_tab ON emp_tab.dept_id=dept_tab.dept_id;
Моя попытка не увенчалась успехом. Не могли бы вы показать мне, как я могу это решить. Я новичок в MySQL
Ответ №1:
Две вещи:
- Вам нужно использовать функцию group by и count
- Ваше соединение соединяло недопустимую таблицу
SELECT dept_tab.dept_name, COUNT(*) as number
FROM emp_tab
INNER JOIN dept_tab ON emp_tab.dept_id=dept_tab.dept_id
GROUP BY dept_tab.dept_name
Ответ №2:
Вы можете использовать JOIN и GROUP BY по имя_департамента для подсчета количества сотрудников.
В вашем вопросе, что такое Customers
таблица? Я предполагаю, что это dept_tab?
SELECT
d.dept_name,
COUNT(d.id) AS cnt
FROM
dept_tab d
LEFT JOIN empt_tab e
ON e.dept_id = d.dept_id
GROUP BY d.dept_name ;