将3个表与内部联接组合在一起

时间:2017-04-29 16:16:41

标签: php mysql database codeigniter

id  | feature  | form_type

如您所见,我从表和循环中获取类别功能。然后一个功能可能是选择框,所以选项在另一个表中。对于selectbox的每个功能,我需要获取该功能值,这意味着选项..如何为此创建SQL?

**特征

id | feature_id | category_id

** category_features

id | feature_value | feature_id

** feature_values

DOM

我的桌子就是这样。根据category_id,我得到了这些功能。如果form_type是selectbox,我想获得选项。

1 个答案:

答案 0 :(得分:1)

我认为,需要两个步骤才能获得所需的数据结构。

首先,使用像这样的SQL

select 
f.from_type,
f.feature,
fv.feature_id,
fv.feature_value
 from features as f
inner join category_features as cf
on f.id = cf.feature_id
right join feature_values as fv;

然后聚合记录集,可能就像下面的代码

$result = [];

array_map(function (item) use (&$result) {
    // do some aggregate operations
}, $records);

一次很难得到正确的结果