gpt4 book ai didi

php - 加入两个 MYSQL 数据库表并检查第二个表是否没有记录然后返回 FALSE,如果列有一些特定值则也返回 FALSE

转载 作者:行者123 更新时间:2023-11-30 22:38:26 25 4
gpt4 key购买 nike

我有两张 table ,一张用于参与者,一张用于入围候选人。 participants 表有所有参加测试的申请人名单,shortlisted 表只有入围候选人。一旦用户单击 UI 中的候选列表按钮,就会在第二个表中插入数据(这部分是正确的)。当用户点击同一个按钮两次时,候选人将从候选名单中删除(我在 shortlisted 表中有一个字段“status”,并且在其中设置了一个标志值 removed 到取消候选名单)

现在,当我尝试使用以下查询拉取所有候选人时,我没有得到所需的输出。

我的要求是拉所有没有入围的候选人。

P.S 如果学生没有被选中一次,那么shortlisted 表中将不会有该学生的任何条目。如果学生被选中一次并被删除,shortlisted 表中将有一个包含他详细信息的条目,状态为已删除

我目前的查询如下

    SELECT DISTINCT(gca.leaderEmail)lemail,
gca.leaderId,
gca.leaderName,
gca.leaderMobile,
gca.clgName,
gca.t1Name,
gca.t2Name,
gca.id caseApplyId,
gca.caseId caseId,
gu.profile_pic,
CASE WHEN gcs.id IS NULL then FALSE else TRUE end as shortlist
FROM gmmu_case_apply gca
LEFT JOIN gmmu_users gu ON gu.id = gca.leaderId AND gca.leaderId <> 0
LEFT JOIN gmmu_case_shortlist gcs ON gcs.applicantId = gca.id
WHERE gca.caseId = $caseId

你能帮我弄清楚我在这里做错了什么来实现我想要的输出吗

更新:我的要求是,如果在第二个表中候选人的状态 = 'removed',我应该得到 FALSE,如果没有匹配,我也应该得到 FALSE在第二个表中加入该用户。我希望别名 shortlist 的返回值是 TRUE 或 FALSE 我已经与上面的查询中的这一行有一定距离

CASE WHEN gcs.id IS NULL then FALSE else TRUE end as shortlist

最佳答案

我认为您还需要将 gmmu_case_shortlist 上的连接更改为 LEFT JOIN。您编写的查询只会返回 gca 和 gcs 中的记录。

此外,您的案例陈述需要修改以检查 gcs.status 是否“已删除”,例如:

CASE WHEN gcs.status='removed' THEN FALSE 
WHEN gcs.id is null THEN FALSE
else TRUE
end as shortlist

关于php - 加入两个 MYSQL 数据库表并检查第二个表是否没有记录然后返回 FALSE,如果列有一些特定值则也返回 FALSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31759157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com