我正在使用 Codeigniter,我遇到 MySQL 查询问题。我从我这边尝试过,但没有得到我预期的输出。
从 @tcadidot0 得到答案后,我的问题得到了解决,但我必须在我的联接中使用以下查询。
SELECT A.* FROM tbl_payment_invoice A
INNER JOIN
(SELECT `bank_id`,MAX(`payment_invoice_date`) AS maxdt
FROM tbl_payment_invoice GROUP BY `bank_id`) B
ON A.`bank_id`=B.`bank_id` AND A.`payment_invoice_date`=B.`maxdt`;
你能帮我看看如何在这个连接 ->join('tbl_payment_invoice','tbl_bankname.b_id=tbl_payment_invoice.bank_id','LEFT')
中使用上面的查询吗? ?
最终查询
$result = $this->db->select('*')
->from('tbl_lead')
->join('tbl_bankdata','tbl_lead.c_id=tbl_bankdata.lead_id','LEFT')
->join('tbl_bankname','tbl_bankname.b_id=tbl_bankdata.b_bankname')
->join('tbl_payment_invoice','tbl_bankname.b_id=tbl_payment_invoice.bank_id','LEFT')
->order_by('tbl_lead.date_of_created','DESC')
->get()
->result();
我应该使用子查询吗?
最佳答案
你可以尝试这样:
SELECT A.* FROM tbl_payment_invoice A
INNER JOIN
(SELECT `bank_id`,MAX(`payment_invoice_date`) AS maxdt
FROM tbl_payment_invoice GROUP BY `bank_id`) B
ON A.`bank_id`=B.`bank_id` AND A.`payment_invoice_date`=B.`maxdt`;
首先,您使用 MAX() 按银行 ID 分组获取最新日期。然后将其作为子查询。创建一个外部查询来内部连接您在bank_id和最大日期上获得的结果。
关于php - 如何在Codeigniter连接中使用Mysql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58281653/