我已尝试过各种教程和示例,如何制作动态数据透视表,我无法使其工作。每次我得到一些SQL错误。
有人可以帮助我制作动态数据透视表。我是新手,我想我首先制作数据透视表时会按属性轻松进行过滤搜索。这是我的表格:
表1名称:table_items
------------------------------
| item_id | title | ... |
------------------------------
| 1 | item 1 | ... |
------------------------------
| 2 | item 2 | ... |
------------------------------
表2名称:table_item_options
-----------------------------
| option_id | option_name |
-----------------------------
| 1 | Color |
-----------------------------
| 2 | Size |
-----------------------------
表3名称:table_attributes
--------------------------------------------------
| attribute_id | option_id | attribute_name |
--------------------------------------------------
| 1 | 1 | Blue |
--------------------------------------------------
| 2 | 1 | Red |
--------------------------------------------------
| 3 | 2 | XL |
--------------------------------------------------
| 4 | 1 | Green |
--------------------------------------------------
| 5 | 2 | L |
--------------------------------------------------
表4名称:table_item_attributes
------------------------------------------------------
| assigned_id | item_id | option_id | attribute_id |
------------------------------------------------------
| 1 | 1 | 1 | 1 |
------------------------------------------------------
| 1 | 1 | 1 | 2 |
------------------------------------------------------
非常感谢任何帮助
我想要的是按项目属性对项目进行产品过滤。据我所知,最好制作一个数据透视表,并避免重复结果表连接表。
所有第一列都是主键,并且具有自动增量。
编辑: 此时,使用内部联接,我创建了一个大表,而在Select子句中,我将" WHERE attribute_id =' 2' &#34 ;. (这意味着选择全部红色),但像这样我只能使用一个过滤器。
所以我有一个问题,我不能使用来自attribute_id列的多个过滤器,我想过滤更多属性(其他颜色,其他大小,城市等)。
那么我怎样才能使用数据透视表呢?我的目的是动态创建来自(table_item_options)的option.name列,并用attribute_id或attribute_name填充它,这样我就可以使用更多的过滤器
例如:
-----------------------------------------------------
| item_id | ... | color | size | City | etc.. |
------------------------------------------------------
| 1 | ... | 1(or Red) | L | A | ... |
------------------------------------------------------
| 1 | ... | 2(or Blue)| XL | B | ... |
------------------------------------------------------
在这样的表中,如果我选择* ..其中color = red,我将能够通过另一列过滤此表,例如:Where city = a
我希望现在更清楚了。