Получите каждое количество данных, объединив две таблицы в MySQL

#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:

Две вещи:

  1. Вам нужно использовать функцию group by и count
  2. Ваше соединение соединяло недопустимую таблицу
 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 ;