查询以避免左外连接或内连接

时间:2018-05-14 05:08:30

标签: mysql sql

我有像

这样的表格数据
value   pvalue  value_type
an1001  bk1001  1
an1002  null    1
an1003  null    1
an1004  bk1002  1
bk1001  ck1001  2
bk1002  ck1002  2
ck1001  MG1001  3
ck1002  null    3

我期待像

这样的结果
value   pvalue1 pvalue2 pvalue2
an1001  bk1001  ck1001  MG1001
an1002  bk1002  ck1002  
an1003          
an1004          

有没有办法编写查询,我可以避免左外连接或内连接,而不是我可以使用内联队列

1 个答案:

答案 0 :(得分:1)

您可以使用类似以下查询的内容。请注意语法错误,如果有的话。

select value,
     max(case when value_type = 1 then pvalue else null end) as pvalue1,
     max(case when value_type = 2 then pvalue else null end) as pvalue2,
     max(case when value_type = 3 then pvalue else null end) as pvalue3
from table
group by value;