CI活动记录,从多个表中选择记录

时间:2017-07-05 12:20:46

标签: php mysql codeigniter

我有两张桌子。首先是product,其中管理员将添加产品,另一个是product_detail,其中供应商将添加详细信息。多个供应商可以根据销售价格,报价等产品细节添加相同的产品。

“我想从products表格中选择产品,并希望从product_detail表格中选择产品详细信息,但只选择一行具有较低销售价格的产品详细信息”。

所以我想使用CI活动记录将最终输出作为产品列表及其详细信息。

2 个答案:

答案 0 :(得分:0)

以此为例:

Create table #Product(id int, name varchar(100));
Create table #Product_detail(id int, product_id int, detail varchar(100));

insert into #Product values
(1,'Item1'),
(2,'Item2')


insert into #Product_detail values
(1,1,20),
(2,1,10),
(3,1,40),
(4,2,70),
(5,2,50)

这是您的基本查询:

select 
a.*, b.price
from 
 #product a inner join
 (select product_id, min(price) price
  from #product_detail
  group by product_id
 ) b
on a.id = b.product_id

在CI中,尝试执行以下操作:

$var = $this->db->query("select a.*, b.price from #product a 
                         inner join
                        (select product_id, min(price) price
                         from #product_detail
                         group by product_id
                         ) b
                        on a.id = b.product_id")->result_array();

示例输出:

id          name   price
----------- ------ -----------
1           Item1  10
2           Item2  50

答案 1 :(得分:0)

首先,您应该在模型中制作getter和setter,并使用CI活动记录+ pdo它从我的角度来看更安全。

祝你好运。