我正在尝试创建一个查询,该查询将返回特定公司发布的所有作业,以及应用此作业的总人数。第一部分工作得很好-我得到了所有的工作和我需要的一切:

$query = "SELECT *,j.job_id as jid, c.name as city_name ".
         "FROM jobs j JOIN areas a ON a.area_id = j.job_area ".
         "JOIN positions p ON p.position_id = j.job_position ".
         "JOIN fields f ON f.id = j.job_field ".
         "JOIN cities c ON j.job_city = c.id ".
         "JOIN jobTypes jt ON j.job_type = jt.job_id " .
         "JOIN companies comp ON j.job_company = comp.company_id ".
         "LEFT JOIN jobApplications ja ON ".
              "ja.user_id = '".$_SESSION['user_id']."' AND ".
              "j.job_id = ja.job_id WHERE j.job_company='$company_id'";

问题是,我想将jobApplications表中的每个结果行添加为该作业的申请者数。。。我试图在查询中添加一个COUNT列,它本身工作得很好:
SELECT COUNT(*) FROM jobApplications ja WHERE ja.job_id=j.job_id

当添加到第一个大查询时,我甚至无法在语法级别上使其工作,所以我不确定它是否工作。。。
我试图将最后一个查询添加到主查询的select区域,但在count查询的结尾处的“j a.job_id=j.job_id”后面总是会出现语法错误。。。
这可能吗?
我希望问题是清楚的,我知道这里有很多桌子。。。
谢谢你的时间和帮助!

最佳答案

我不知道你的求职申请,但这可能行得通。

$query = "SELECT *,j.job_id as jid, c.name as city_name, COUNT(ja.<primary key>) ".
     "FROM jobs j JOIN areas a ON a.area_id = j.job_area ".
     "JOIN positions p ON p.position_id = j.job_position ".
     "JOIN fields f ON f.id = j.job_field ".
     "JOIN cities c ON j.job_city = c.id ".
     "JOIN jobTypes jt ON j.job_type = jt.job_id " .
     "JOIN companies comp ON j.job_company = comp.company_id ".
     "LEFT JOIN jobApplications ja ON ".
          "ja.user_id = '".$_SESSION['user_id']."' AND ".
          "j.job_id = ja.job_id WHERE j.job_company='$company_id' ".
     "GROUP By jid";

10-08 07:38
查看更多