Как сделать l oop через таблицу базы данных в mysql и показать столбец один раз, хотя он появляется в разных строках - PullRequest
0 голосов
/ 03 апреля 2020

имя базы данных = db_structure

id | param_id | occupation_id | amount | active 
1.     1            1         20000      1
2.     2            1         20000      1 
3.     3            1         20000      1
4.     1            1         20000      1
5.     2            2         20000      1
6.     3            2         20000      1
7.     4            2         20000      1

на какой запрос я напишу l oop через таблицу, чтобы извлечь записи в каждой строке, но в таблице будет показан только одно занятие_id, даже если оно больше один раз?

SELECT tbl_salarystructure.occupationid, SUM(amount), tbl_occupation.* 
FROM `tbl_salarystructure` 
INNER JOIN tbl_occupation ON 
  tbl_salarystructure.occupationid = tbl_occupation.id  
WHERE tbl_salarystructure.active = 1 ORDER BY occupationid

результат запроса такой, когда я использую php для извлечения строк в таблице

Таблица отчетов

Department | Amount
1            20000
1            20000
1            20000
1            20000
2            20000
2            20000
2            20000

Я хочу отдел, чтобы показать один раз с общей суммой столбца суммы, используя php, где их идентификатор занятия тот же

Спасибо, ребята, я нашел решение моей проблемы ... Я изменил ORDER BY в моем sql в GROUP BY колонку, которую я хочу, и она вышла идеально

1 Ответ

0 голосов
/ 03 апреля 2020

Я думаю, вы просто хотите GROUP BY:

SELECT o.*, SUM(amount)
FROM tbl_occupation o JOIN
     tbl_salarystructure ss      
     ON ss.occupationid = o.id  
WHERE ss.active = 1
GROUP BY o.occupationid;

В общем, вы не хотите использовать SELECT * с GROUP BY. Единственное исключение - когда первичный ключ для таблицы (или фактически любой уникальный ключ) является одним из GROUP BY ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...