[英]Show, Join, Count, Grouping 6 Tables on PHP MySQL
在使用php和mysql显示,联接和分组6个表时出现问题。
我的桌子
loker_job:id_job,slug_job,职位,部门,级别,位置
loker_department:id_department,name_department
loker_level:id_level,name_level
loker_location:id_location,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 |
+----------+-----------------+-----------------+---------------+----------------------+-----------------+
结果
但是,我得到的结果是:
任何帮助将不胜感激,谢谢
首先通过“ 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.