繁体   English   中英

在PHP MySQL上显示,联接,计数,分组6个表

[英]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               |
+----------+-----------------+-----------------+---------------+----------------------+-----------------+

结果

但是,我得到的结果是:

  • 尽管从db显示0或全无,但总有1个或多个行总结果为1个申请人
  • 总行不正确,总数据总为-1

任何帮助将不胜感激,谢谢

首先通过“ 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM