2017-02-01 2 views
0

У меня проблема при отображении, объединении и группировании 6 таблиц с php и mysql.Show, Join, Count, группировка 6 таблиц на PHP MySQL

Моя таблица

  • loker_job: id_job, slug_job, должность, отдел, уровень, расположение

  • loker_department: id_department, name_department

  • loker_level: id_level, name_level

  • loker_location: id_l ocation, name_location

  • loker_applicant: id_job, файл

  • loker_user: id_user, имя

Мой запрос

SELECT 
loker_job.slug_job, 
loker_level.name_level, 
loker_location.name_location, 
loker_department.name_department, 
loker_user.name, 
loker_applicant.file, 
count(*) as total_applicant 
FROM 
loker_job 
LEFT JOIN loker_department ON loker_department.id_department = loker_job.department 
LEFT JOIN loker_level ON loker_level.id_level = loker_job.`level` 
LEFT JOIN loker_location ON loker_location.id_location = loker_job.location 
LEFT JOIN loker_user ON loker_user.id_user = loker_job.publisher 
LEFT JOIN loker_applicant ON loker_applicant.id_job = loker_job.slug_job 
GROUP by loker_job.slug_job 

Я хочу результат:

+----------+-----------------+-----------------+---------------+----------------------+-----------------+ 
| slug_job | name_level  | name_department | name_location | name_position  | total applicant | 
+----------+-----------------+-----------------+---------------+----------------------+-----------------+ 
| 1111  | General Manager | Marketing  | America  | Vice General Manager | 3    | 
| 2222  | E-officer  | Ecommerce  | Japan   | Officer    | 1    | 
| 3333  | General Manager | Sales   | Rusia   | Vice General Manager | 0    | 
| 4444  | General Manager | Marketing  | America  | Vice General Manager | 3    | 
+----------+-----------------+-----------------+---------------+----------------------+-----------------+ 

Результат

, но результат я получаю:

  • Есть один или несколько строк всегда приводит к 1 общему заявителю хотя из дб шоу 0 или ничего
  • общего ряд не правильный, он всегда -1 от общего количества данных

любая помощь будет так оценена, спасибо

ответ

0

Первый стол с «loker_user» и левое внешнее соединение с реляционной таблицей. И в соответствии с описанной ниже:

SELECT loker_job.slug_job, loker_level.name_level, loker_location.name_location, 
loker_department.name_department, A.name, loker_applicant.file, IFNULL(A.total_applicant,0) as total_applicant 
FROM loker_job 
LEFT OUTER JOIN loker_department ON loker_department.id_department = loker_job.department 
LEFT OUTER JOIN loker_level ON loker_level.id_level = loker_job.`level` 
LEFT OUTER JOIN loker_location ON loker_location.id_location = loker_job.location 
LEFT OUTER JOIN loker_applicant ON loker_applicant.id_job = loker_job.slug_job 
LEFT OUTER JOIN (
select id_user,name, count(*) as total_applicant from loker_user group by id_user, name 
) as A ON A.id_user = loker_job.publisher 
+0

это показать Неизвестный столбец «a.publisher» в «на пункте» имя столбца – azmi27

+0

Update от «A.loker_job» до «loker_job.loker_job». – jainvikram444