Php Mysql-如何在一条记录中为自定义字段标题和数据连接表
Php Mysql-如何在一条记录中为自定义字段标题和数据连接表,php,mysql,sql,database-design,select,Php,Mysql,Sql,Database Design,Select,产品表: id product_name ----------------- 20 Toy Car id product_id label value ----------------------------- 1 20 Price 20.00 2 20 Color Red 产品属性表格: id product_name ----------------- 20 Toy Car id product_id label
产品
表:
id product_name
-----------------
20 Toy Car
id product_id label value
-----------------------------
1 20 Price 20.00
2 20 Color Red
产品属性
表格:
id product_name
-----------------
20 Toy Car
id product_id label value
-----------------------------
1 20 Price 20.00
2 20 Color Red
需要sql语句返回一行,其中包含类似于so的值和标题
id, product_name, price, color
----------------------------------
20 Toy Car 20.00 Red
这就是您正在寻找的:
SELECT
Products.id,
Products.product_name,
Max(case label when 'Price' then product_attr.value else null end) as price,
Max(case label when 'Color' then product_attr.value else null end) as color
FROM Products
LEFT JOIN product_attr
ON Products.is = product_attr.product_id
GROUP BY Post.headline, Post.date
但是,我应该写一些关于您设计的注意事项:
- 如果一个产品有一个以上的记录,比如说颜色,会发生什么?(同样适用于价格)
是为了确保产品始终都会出现。但是,一个产品不能有颜色吗?还是价格LEFT JOIN
- 您正在尝试使用通用属性,但正在丢失键入系统,将字符串和数字混合(
中的product\u attr
字段)。这是令人困惑的,永远不会有好的结局value
- 总而言之:产品有颜色吗?在
!产品有价格吗?在产品中声明颜色字段
李>产品中声明价格字段