我在表结构和查询结果方面遇到了问题,我想要的是它只输出一个结果,也就是第一个结果。我应该在我的表结构中进行哪些更改?因为它只返回相同的输出但不同的prf_id。
现在的情况是这样的。tbl_prf是针对人员的请求。tbl_job_plist适用于发布的职位,tbl_applicant适用于申请者。当我在tbl_prf中添加一个条目时,它会从它的引用示例的tbl_job_plist中选择条目。然后,当我试图查看申请者时,需要显示所选tbl_job_plist的tbl_prf ID和ID。这就是我如何想出这个代码的。当我查看申请者时会发生什么,它会选择两个tbl_prf条目,从而导致同一申请者的两个输出。
我正在尝试做的是获得ap_status为1的申请者。正如你所看到的,我只有一个申请者,所以我只期待一个结果。如果prf_job_post_ref和jplist_id相等,那么申请者的名字就会一直显示在结果上。我该如何预防呢?tbl_prf
prf_id | prf_job_post_ref |
------------------------------------
1 | 1 |
3 | 1 |tbl_job_plist
jplist_id | jplist_position |
------------------------------------
1 | Crew |tbl_applicant
ap_id | ap_position_applied | ap_status | ap_name |
----------------------------------------------------------
1 | 1 | 1 | Kurt |查询
SELECT
tbl_applicant.ap_id,
tbl_applicant.ap_name,
tbl_job_plist.jplist_id,
tbl_prf.prf_id
FROM tbl_applicant
LEFT JOIN tbl_job_plist ON tbl_applicant.ap_position_applied = tbl_job_plist.jplist_id
LEFT JOIN tbl_prf ON tbl_job_plist.jplist_id = tbl_prf.prf_job_post_ref
WHERE ap_status = 1结果
ap_id | jplist_id | prf_id | ap_name |
-----------------------------------------------------------
1 | 1 | 1 | Kurt |
1 | 1 | 3 | Kurt |发布于 2015-11-10 11:17:18
根据你的评论,只想要一行,而不关心哪一行,你可以使用TOP,如下所示…
SELECT TOP 1
tbl_applicant.ap_id,
tbl_job_plist.jplist_id,
tbl_prf.prf_id
FROM tbl_applicant
LEFT JOIN tbl_job_plist ON tbl_applicant.ap_position_applied = tbl_job_plist.jplist_id
LEFT JOIN tbl_prf ON tbl_job_plist.jplist_id = tbl_prf.prf_job_post_ref
WHERE ap_status = 1发布于 2015-11-10 11:17:26
根据您希望返回这两个拖轮中的哪一个,您可以使用MAX或MIN子查询。所以在
LEFT JOIN tbl_prf ON tbl_job_plist.jplist_id = tbl_prf.prf_job_post_ref
你可以把
and tbl_prf.prf_id =(select max(pe.prf_id) from tbl_prf pe where pe.prf_job_post_ref= tbl_prf.prf_job_post_ref )这将返回您的示例中值为3的行。
https://stackoverflow.com/questions/33558348
复制相似问题