我需要创建一个查询,该查询将显示具有最低但最接近的id的项目名称,该项目也被视为“关键”项目,具体取决于任务代码是空的。这似乎是一个有点令人费解,所以我把它放在一个简单的代码来简化:如何使用ifnull创建临时表
ifnull (Task_Code,
create Key_temp
select id_temp
task_is_key_temp
task_id_temp
proj_name_temp
from projetos_main pm left join pcrs
ON pcrs.num_doc = pm.Task_code
where task_id_temp <= task_id and
task_is_sum_temp = 'true'
order by id desc
limit 1
所以,当任务代码为空,我想创建一个临时表,从信息填充它我主表,并得到一个既是“重点项目”,又有低于原始标识的结果。
的问题是,我不知道是否有可能创建一个使用“IFNULL”临时表,当我做到以下几点:
ifnull(Task_code,
CREATE TABLE Key_temp ...)
我得到一个语法错误。所以这是不可能的或者是我的代码错了?
编辑
这里的表结构:
Pcrs
Num_doc|
1 |
2 |
- |
Projetos_main
Id || Task_is_key || Task_id || Proj_name || Task_code |
1 || False || 3 || Name 1 || 1 |
2 || True || 5 || Name 2 || 2 |
3 || False || 5 || Name 3 || - |
Task_code是一个外键引用Num_doc。不是所有的项目都有一个Task_Code,所以当发生这种情况时,我需要显示项目名称与最近的ID,这也是一个关键项目。
因此,它应该停止在项目3,意识到Task_code是空的,并获得项目2,它具有相同的task_id AND是一个key_task。
将您所需要的临时表? –
这个逻辑有点复杂,但如果绝对必要的话,我可以把它包含在问题中。我是不是该? – RazorFinger
我基本上需要在同一张表上包含来自不同行和列的信息 – RazorFinger