MYSQL数据透视表创建
我尝试过各种教程和示例如何创建动态数据透视表,但我无法使其正常工作。每次我都会遇到一些sql错误 有人能帮我制作动态透视表吗。我是新来的,我想当我首先创建透视表时,我会使按属性进行筛选搜索变得容易。这是我的桌子: 表1名称:表项目MYSQL数据透视表创建,mysql,pivot-table,Mysql,Pivot Table,我尝试过各种教程和示例如何创建动态数据透视表,但我无法使其正常工作。每次我都会遇到一些sql错误 有人能帮我制作动态透视表吗。我是新来的,我想当我首先创建透视表时,我会使按属性进行筛选搜索变得容易。这是我的桌子: 表1名称:表项目 ------------------------------ | item_id | title | ... | ------------------------------ | 1 | item 1 | ... | ----------
------------------------------
| item_id | title | ... |
------------------------------
| 1 | item 1 | ... |
------------------------------
| 2 | item 2 | ... |
------------------------------
表2名称:表项目选项
-----------------------------
| option_id | option_name |
-----------------------------
| 1 | Color |
-----------------------------
| 2 | Size |
-----------------------------
表3名称:表_属性
--------------------------------------------------
| attribute_id | option_id | attribute_name |
--------------------------------------------------
| 1 | 1 | Blue |
--------------------------------------------------
| 2 | 1 | Red |
--------------------------------------------------
| 3 | 2 | XL |
--------------------------------------------------
| 4 | 1 | Green |
--------------------------------------------------
| 5 | 2 | L |
--------------------------------------------------
------------------------------------------------------
| assigned_id | item_id | option_id | attribute_id |
------------------------------------------------------
| 1 | 1 | 1 | 1 |
------------------------------------------------------
| 1 | 1 | 1 | 2 |
------------------------------------------------------
表4名称:表项目属性
--------------------------------------------------
| attribute_id | option_id | attribute_name |
--------------------------------------------------
| 1 | 1 | Blue |
--------------------------------------------------
| 2 | 1 | Red |
--------------------------------------------------
| 3 | 2 | XL |
--------------------------------------------------
| 4 | 1 | Green |
--------------------------------------------------
| 5 | 2 | L |
--------------------------------------------------
------------------------------------------------------
| assigned_id | item_id | option_id | attribute_id |
------------------------------------------------------
| 1 | 1 | 1 | 1 |
------------------------------------------------------
| 1 | 1 | 1 | 2 |
------------------------------------------------------
非常感谢您的帮助
我想做的是根据产品属性对产品进行筛选。据我所知,最好是创建一个透视表,并避免在连接表时重复结果
所有第一列都是主键,并具有自动增量
编辑:
在这一点上,我使用内部联接创建了一个大表,并在Select子句中放置属性_id='2'。这意味着选择所有红色,但像这样,我只能使用一个过滤器
所以我有一个问题,我不能使用属性\ id列中的多个过滤器,我想通过其他颜色、其他大小、城市等更多属性进行过滤
那么如何使用透视表来实现这一点呢?我的目的是从表\u item\u options中创建option.name列,并用属性\u id或属性\u name填充它,以便使用更多过滤器
例如:
-----------------------------------------------------
| item_id | ... | color | size | City | etc.. |
------------------------------------------------------
| 1 | ... | 1(or Red) | L | A | ... |
------------------------------------------------------
| 1 | ... | 2(or Blue)| XL | B | ... |
------------------------------------------------------
在这样的表中,如果我选择*。。如果color=red,我将能够通过另一列过滤此表,例如:where city=a
我希望现在更清楚。您想做什么?您的SQL错误是什么?table_item_attributes是一个项目和属性的透视表,您不需要其中的option_id字段,您已经有了另一个透视表。也不确定分配的\u id是什么,但如果它应该是主键,那么您需要将其设置为自动递增并成为主键,否则复制该id将导致SQL错误。您希望的结果是什么??你想发生什么。。。制作产品过滤器对我们来说意义不大。。给我们看一些数据。。你想做什么。。您需要的操作。最好在应用程序级代码/表示层中处理数据显示问题。虽然MySQL中可以使用动态数据透视表,但它们在我看来相当单调乏味。