gpt4 book ai didi

php - 在 codeigniter 中为每个用户选择最新记录

转载 作者:行者123 更新时间:2023-11-29 07:54:51 29 4
gpt4 key购买 nike

我发现了这个查询,我相信它可以解决我的问题:

SELECT MemberID, ContractID, StartDate, EndDate
FROM member_contracts
WHERE ContractId IN (
SELECT MAX(ContractId)
FROM member_contracts
GROUP BY MemberId
)

@Mark Byers 给出了此查询作为另一个问题的答案。

如何在 CodeIgniter 中使用此查询,尤其是“Where_in”子句。

谢谢

最佳答案

您仍然可以使用事件记录库来编译子查询,方法是使用 get_compiled_select()

$this->db->select('MAX(ContractId)')
->from('member_contracts')
->group_by('MemberId');
$subquery = $this->db->get_compiled_select();

$this->db->select('MemberID, ContractID, StartDate, EndDate')
->from('member_contracts ')
->where("ContractId IN($subquery)", NULL, FALSE)
->get()
->result();

您还可以使用联接而不是子查询来重写查询,以获取每个组的最新记录,并且 MemberId,ContractId 上的复合索引也会很有用

SELECT m.MemberID, m.ContractID, m.StartDate, m.EndDate
FROM member_contracts m
JOIN (
SELECT MemberId,MAX(ContractId) ContractId
FROM member_contracts
GROUP BY MemberId
) mm
USING(MemberId,ContractId)

关于php - 在 codeigniter 中为每个用户选择最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25420668/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com