编写查询以特定方式获取数据

时间:2016-08-14 08:57:37

标签: php mysql

表名:资源

res_id | first_name
   1      clyde
   2      John
   3      Rachel
   4      Jason
   5      Rasmon
   6      Pierson
   7      Jamson
   8      Radamel

表名:probation_hr

probation_id | res_id | month_id | hr_id
   1             1         M1        4
   2             1         M2        4
   3             2         M1        4
   4             2         M2        4

表名:probation_feedback

 prob_id | reviewer_id | res_id
  1           6          null
  1           7          null
  1           8          null
  1           null       1
试用反馈表中的

res_id not null表示试用者填写了他的反馈

给定一组resource_id,我想按如下方式获取他的详细信息

resources.first_name, 
probation_hr.month_id,
probation_hr.probation_id, 
probation_hr.hr_id (also get this id's first name from resources table),
and lastly get all records from probation_feedback table where 
probation_hr.probation_id = probation_feedback.probation_id (here there are multiple records, so do i use another array here?)

单个案例案例: RESOURCE_ID = 1 输出: clyde(resources.first_name),4(probation_hr.hr_id),M1(probation_hr.month_id),1(probation_hr.probation_id),数组(来自probation_feedback表的记录,其中probation_id = 1):

 1           6          null,
 1           7          null
 1           8          null
 1           null       1

我如何在一个查询中执行此操作?

有可能吗?

如果不可能,我该怎么做? 我使用2D阵列吗?

即时通讯使用php和mysql

提前

thanx

1 个答案:

答案 0 :(得分:0)

好吧,我没有足够的声誉来发表评论,所以我提出了一个答案。您将使用连接从上面提到的表中获得结果。请找到以下查询以获得结果:

SELECT r.first_anme
     , p_h.month_id
     , p_h.probation_id
     , p_h.hr_id
     , p_f.* 
  FROM probation_feedback p_f 
  LEFT 
  JOIN probation_hr p_h 
    ON p_f.prob_id = p_h.probation_id 
  LEFT 
  JOIN resources r 
    ON r.res_id = p_h.res_id;

这里你会得到多个结果,因为probation_feedback表有多个记录组成相同的prob_id。我不认为你会把probation_feedback表中的记录作为一个数组,但你会获得多行结果。如果有效,请告诉我。谢谢