【问题标题】:How to get values from one column and convert it into two columns SQL如何从一列中获取值并将其转换为两列 SQL
【发布时间】:2021-03-23 13:24:24
【问题描述】:

我有一个包含 3 列(id、size、grade、unit_price)的 SQL 表,如图所示1

我想以 HTML 的形式显示这个表格:

size | grade 40 price | grade 60 price

如下图所示:

【问题讨论】:

  • 您好!你试过什么?什么不工作?请提供更多详细信息
  • id1和id6是一样的尺寸和等级但是价格不一样?
  • 我不知道该怎么做
  • 是的,每个等级的尺码相同,但价格不同
  • 您可以按尺寸排序然后评分,然后一次检索两行并合并显示表格的联系人。

标签: php html sql


【解决方案1】:

你只是想要条件聚合吗?

select size,
       max(case when grade = '40 Grade' then unit_price end) as price_40,
       max(case when grade = '60 Grade' then unit_price end) as price_60
from t
group by size;

【讨论】:

    【解决方案2】:
    1. 您的数据库应该被规范化。
    2. 例如,您应该至少知道一个 product_id,该信息所指的正是哪个产品。在这种情况下。唯一指同一产品的东西是相同的大小,这是字符串,这不是一个好的做法。

    这是一个适合您的情况的代码,但我建议更改您的数据库架构

    SELECT
        p1.size,
        p1.unit_price AS price_grade_40,
        p2.unit_price AS price_grade_60
    
    FROM products AS p1
    
    LEFT JOIN products AS p2
           ON p1.size = p2.size
          AND p2.grade = 'Grade 60'
    
    WHERE p1.grade = 'Grade 40'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多