我有两张 table 。第一个是product
,管理员将在其中添加产品,另一个是product_detail
,供应商将在其中添加详细信息。多个供应商可以添加相同的产品以及产品详细信息,例如售价、报价等。
“我想从 products
表中选择产品,并希望从 product_detail
表中选择产品详细信息,但只有一行售价较低的产品详细信息”。
所以我想使用 CI 事件记录来获取最终输出作为产品列表及其详细信息。
最佳答案
以此为例:
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
关于php - CI Active record,从多个表中选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44926141/