0

嗨,我需要一些帮助。我有 3 张桌子

**Products**
product_id //eg 1
product_name //eg apple imac
description // mplah mplah
category_id // 3 - desktops
...

**Features**
feature_id // 1
feature_name // processor
category_id // takes the parent-category eg computers with id = 1

and a pivot table **product_features** that should have something like this
product_id // 1
feature_id // 1
feature_value // intel i5

每个表还代表一个模型(所以我有一个 product_model、feature_model 和一个 product_feature_model——我还不确定是否需要它——)

在我看来,我有一个用于插入/编辑的表单,我想在其中获取特定类别的所有功能(在我的示例中为“计算机”)以及也属于特定产品的值。

所以我应该得到类似 苹果 imac -处理器-英特尔 i5尼康-变焦- 12Mpx

如何进行此查询以及放入哪个模型更好?

这是我在 phpmyadmin 中测试过的查询

SELECT `features`.*, `product_features`.`value`
FROM (`features`)
LEFT JOIN `product_features` ON `features`.`feature_id`=`product_features`.`feature_id`
WHERE `features`.`category_id` =  1
WHERE `product`.`product_id` = 1 // without this, it returns  feature_id, feature_name, category_id and feature_value collumns, but I also want to specify from wich product
4

2 回答 2

0

1)产品是你的“主要”实体,所以我会把它放在那里

2) 为所有模型使用 MY_Model 基本模型(您可以在 Google 上搜索 CodeIgniter)

3)如果你做 2,你会想要连接表模型,这样你就可以进行简单的更新

于 2013-09-06T09:10:00.333 回答
0

尝试:

select p.*, f.*, pf.* from Products p, Features f, product_features pf where p.product_id = pf.product_id AND pf.feature_id = f.feature_id AND p.category_id = f.category_id
于 2013-09-06T10:52:42.827 回答