Codeigniter - 从许多表中获取数据

时间:2013-09-06 09:01:41

标签: php mysql codeigniter database-schema

嗨,我想要一些帮助。 我有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 - 我还不确定它是否需要 - )

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

所以我应该得到类似的东西 apple imac - 处理器 - intel i5 nikon - zoom - 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

2 个答案:

答案 0 :(得分:0)

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

2)为你的所有模特使用MY_Model基础模型(你可以将它用于CodeIgniter)

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

答案 1 :(得分: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