【发布时间】:2021-01-09 09:36:58
【问题描述】:
我需要从产品、价格中选择所有 (*) 行。但我需要从价格中选择 MIN 和 MAX 价格。我已经阅读了如何执行此操作,但是如何在 INNER JOIN 中执行此操作
这是我的 build_query() 函数:
//build sql query string
public function build_query($type = "active")
{
$select = "products.*,
(SELECT CONCAT(price) FROM prices WHERE products.id = prices.product_id ORDER BY created_at DESC LIMIT 1) AS price;}
这是我的 products_maxmin_price() 函数:
public function get_shops_products_maxmin_price($parent_id)
{
$this->build_query();
$this->db->select('MAX(price) as p_max, MIN(price) p_min ');
$this->db->where('products.parent_id', clean_number($parent_id));
return $this->db->get('products')->result();
}
这是我的观点:
<?php foreach ($shops_products_maxmin_price as $item): ?>
<?php echo $item->p_min; ?>
<?php endforeach; endif; ?>
<?php foreach ($shops_products_maxmin_price as $item): ?>
<?php echo $item->p_max; ?>
<?php endforeach; endif; ?>
【问题讨论】:
-
为什么将价格存储在单独的表格中?
-
因为我们需要价格历史记录,一个产品在同一日期有一些价格
-
如果是我,我会从原始查询开始
标签: mysql codeigniter