如何在 CodeIgniter 3 中转换此查询
How to convert this query in CodeIgniter 3
我从http://sqlfiddle.com/#!9/a9ec7e/4/0
那里得到了这段片段
它所做的是从table获取所有数据,所有重复的行将被计为1,最后只获取ID/Item.
的最新数据
SELECT
p.*
FROM
(
-- For every product_id, find maximum created_at time
SELECT
product_id, max(created_at) AS created_at
FROM
purchases
GROUP BY
product_id
) AS mx
-- JOIN to the whole table
JOIN purchases p ON
mx.product_id = p.product_id AND mx.created_at = p.created_at
ORDER BY
product_id ;
这是上面代码片段的结果图片。
结果图片(image):
真正的问题是,如何让它与 CodeIgniter3 查询一起使用?
或者我如何在 CodeIgniter3 中执行此查询。
我尝试使用 $this->db->query(); 但没有成功。
这是我使用上面的代码片段拍摄的图像,并更改了 table 名称、列。我的拍摄结果(图片):
试试这个:
$query = $this->db->query("SELECT p.* FROM (SELECT product_id, max(created_at) AS created_at FROM purchases GROUP BYproduct_id) AS mx
JOIN purchases p ON mx.product_id = p.product_id AND mx.created_at = p.created_at ORDER BY product_id");
return $query->result();
希望对您有所帮助
我从http://sqlfiddle.com/#!9/a9ec7e/4/0
那里得到了这段片段它所做的是从table获取所有数据,所有重复的行将被计为1,最后只获取ID/Item.
的最新数据SELECT
p.*
FROM
(
-- For every product_id, find maximum created_at time
SELECT
product_id, max(created_at) AS created_at
FROM
purchases
GROUP BY
product_id
) AS mx
-- JOIN to the whole table
JOIN purchases p ON
mx.product_id = p.product_id AND mx.created_at = p.created_at
ORDER BY
product_id ;
这是上面代码片段的结果图片。
结果图片(image):
真正的问题是,如何让它与 CodeIgniter3 查询一起使用? 或者我如何在 CodeIgniter3 中执行此查询。
我尝试使用 $this->db->query(); 但没有成功。
这是我使用上面的代码片段拍摄的图像,并更改了 table 名称、列。我的拍摄结果(图片):
试试这个:
$query = $this->db->query("SELECT p.* FROM (SELECT product_id, max(created_at) AS created_at FROM purchases GROUP BYproduct_id) AS mx
JOIN purchases p ON mx.product_id = p.product_id AND mx.created_at = p.created_at ORDER BY product_id");
return $query->result();
希望对您有所帮助