我正在使用具有以下结构的表:(不是我的设计,不能更改)
Columns: foreign_key job_type job_code
1 1 AA
1 2 BB
2 1
2 2 CC
job_type中的值只能是1或2. job_code中的值可以是任何varchar。
我尝试按以下顺序从此表中获取行:
foreign_key job_type_1_code job_type_2_code
我的搜索查询是这样的:
select foreign_key
from my_table
where
( job_type = 1 and job_code like 'D%'
or
job_type = 2 and job_code like 'in_job_2_code%'
)
group by foreign_key
我遇到的问题是,当我没有任何结果时,会返回job_code BB和CC。 如何将这些组合在一起以便查询不会返回任何结果?
答案 0 :(得分:1)
如果您始终拥有两种工作类型的记录,则以下查询有效:
SELECT a.foreign_key, a.job_code as job_type_1_code, b.job_code as job_type_2_code,
FROM table_name a INNER JOIN table_name b ON a.foreign_key = b.foreign_key
AND a.job_type = 1 AND b.job_type = 2
答案 1 :(得分:0)
您需要使用 CASE 语句而不是分组
select foreign_key,
case job_type when 1 then job_code else null end as job_type_1_code,
case job_type when 2 then job_code else null end as job_type_2_code
from your_table