我需要帮助预测我的数据库。此数据库的目的是显示不同类别的优惠。每个项目有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循环,因此我只能进行一次查询,我知道可以进行更多查询,但我需要尽可能简单。
答案 0 :(得分:0)
如果要为每个项目获取单行中的所有名称,则以下查询将起作用:
{{1}}
我的数据库结构中没有任何问题。
希望它有所帮助!