如何查询选择一列以不同的列名

时间:2020-10-22 07:30:21

标签: mysql sql

我想从一列中选择一个值,但从另一列中选择名称

我的查询

-------------------------------------
  id  |  color |  type  |  value
<b>--------------------------------------
  1   |  red   |  2     |  red.jpg
  1   |  red   |  1     |  hot
  2   |  blue  |  2     |  blue.jpg
  2   |  blue  |  1     |  cool
-------------------------------------

表A

---------------
  id  |  name
---------------
  1   |  A
  2   |  B
---------------

表B

------------------------------------
  id  |  color |  tone  |  image
<b>------------------------------------
  1   |  red   |  hot   | red.jpg
  2   |  blue  |  cool  | blue.jpg 
------------------------------------

我想得到这个


结果

sb.TrimEnd(",");

1 个答案:

答案 0 :(得分:1)

您可能根本不需要tbl_a。您只需要这样查询:

select id,color,
       max(case when type=1 then value end) as tone,
       max(case when type=2 then value end) as image 
from tbl_b
group by id, color;

这里是demo fiddle