gpt4 book ai didi

mysql - 用于检查一个选项的 mySQL 查询,如果不正确,则检查另一个选项?

转载 作者:行者123 更新时间:2023-11-30 23:43:41 25 4
gpt4 key购买 nike

我是 mySQL 的新手。

我正在查找表中的某些记录,现在要求已更改。起初,查询会提取在工作中被标记为船长的人的姓名以及一些其他条件。现在我的老板要我在没有队长的情况下把抄录员拉去干活。我如何在 mySQL 中执行此操作?

我的代码是:

$Q = $this->read_db->query('
select DISTINCT j.id, j.reference, max(ja.FinalDue) as FinalDue, j.clientdue, j.pagecount, t.name, ja.iscaptain
from `job` j
join `jobattachment` a on a.`jobid` = j.`id`
join `jobassignment` ja on a.`jobid` = ja.`jobid`
join `transcriber` t on ja.`transcriberid` = t.`id`
where ja.`iscaptain` = 1
and ja.`deleted` != 1
and (a.`editing` = 2 or a.`editing` = 3)
and a.`redline` != 0
and j.`complete` = 0
group by j.id');
return $Q->result_array();

如何查询船长,只有在没有船长的情况下,才查找红线字段中ID的人? jobattachment 表中每个作业都有多条记录,如果附件被标记为红线,则抄写员的 ID 将在该字段中,否则为空。

我尝试通过添加 or 来更改查询,但我不想要船长或抄写员,如果没有船长则只需要抄写员。任何帮助将不胜感激。

最佳答案

我经常尝试这个,这是我想出的解决方案。感谢所有回复的人。

public function getRedlinesNotCompleted() {
$Q = $this->read_db->query('
select j.id, j.reference, max(ja.FinalDue) as FinalDue, j.clientdue, j.pagecount, t.name, max(ja.iscaptain) as iscaptain
from `job` j
join `jobattachment` a on a.`jobid` = j.`id`
join `jobassignment` ja on a.`jobid` = ja.`jobid`
join `transcriber` t on ja.`transcriberid` = t.`id`
where ja.`deleted` != 1
and (a.`editing` = 2 or a.`editing` = 3)
and a.`redline` != 0
and j.`complete` = 0
group by j.id');
return $Q->result_array();
}

public function getCaptainNameForRedlineJobsNotCompleted($jobid) {
$Q = $this->read_db->query('
SELECT t.name, max(j.iscaptain) as iscaptain
FROM jobassignment j
JOIN transcriber t ON t.id = j.transcriberid
WHERE j.jobid = ' . $jobid . ' AND j.iscaptain = 1');
return $Q->row()->name;
}

关于mysql - 用于检查一个选项的 mySQL 查询,如果不正确,则检查另一个选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54925442/

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