投影mySQL数据库,如何处理多个类别

时间:2017-10-24 16:44:17

标签: php mysql

我需要帮助预测我的数据库。此数据库的目的是显示不同类别的优惠。每个项目有1-6个类别。大约有80种类别,所以我决定制作如下三个表:

table1:

ID  Item_id
1   1
2   2
3   3
4   4
5   5

table2:

ID Item_id Category
1   1      cat55
2   1      cat56
3   1      cat57
4   1      cat58
5   2      cat42
6   2      cat43
7   2      cat44
8   2      cat45
9   3      cat42 
etc.

table3:

Category_id  category_name
cat55        apples
cat56        oranges
cat57        bananas
cat58        pineapples

我这样做了吗?我在使用正确的SQL查询在php中显示我的类别时遇到了问题,因为当我使用此查询时:

    SELECT table1.*, table2.*, table3.*
       FROM table1
       INNER JOIN table2
       ON table1.item_id = table2.item_id
       INNER JOIN table3
       ON table2.category=table3.category_id

它只给我第一个类别名称,当我需要所有这些名称时,如下所示:

Item 1: apples, oranges, bananas, pineapples
Item 2: cat42, cat43, cat44, cat45
Item 3: cat42

我做错了什么?这是错误的查询还是我需要将数据库结构更改为这样

table 1 and 3 unchanged

table 2:
ID Item_id  c1      c2      c3      c4      c5      c6  
1   1       cat55   cat56   cat57   cat58   null    null
2   2       cat42   cat43   cat44   cat45   null    null
3   3       cat42   null    null    null    null    null

我使用的是foreach循环,因此我只能进行一次查询,我知道可以进行更多查询,但我需要尽可能简单。

1 个答案:

答案 0 :(得分:0)

如果要为每个项目获取单行中的所有名称,则以下查询将起作用:

{{1}}

我的数据库结构中没有任何问题。

希望它有所帮助!