Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL数据透视表创建_Mysql_Pivot Table - Fatal编程技术网

MYSQL数据透视表创建

MYSQL数据透视表创建,mysql,pivot-table,Mysql,Pivot Table,我尝试过各种教程和示例如何创建动态数据透视表,但我无法使其正常工作。每次我都会遇到一些sql错误 有人能帮我制作动态透视表吗。我是新来的,我想当我首先创建透视表时,我会使按属性进行筛选搜索变得容易。这是我的桌子: 表1名称:表项目 ------------------------------ | item_id | title | ... | ------------------------------ | 1 | item 1 | ... | ----------

我尝试过各种教程和示例如何创建动态数据透视表,但我无法使其正常工作。每次我都会遇到一些sql错误

有人能帮我制作动态透视表吗。我是新来的,我想当我首先创建透视表时,我会使按属性进行筛选搜索变得容易。这是我的桌子:

表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中可以使用动态数据透视表,但它们在我看来相当单调乏味。