Php 从多个用户处获取每个用户的最新记录
我的受益人有多笔交易。在主页上,我想显示客户创建的最新交易。所以,最新交易的受益人应该列在金额明细的最前面。 我创建了类似这样的查询。但它没有显示最新的交易Php 从多个用户处获取每个用户的最新记录,php,mysql,sql,database,Php,Mysql,Sql,Database,我的受益人有多笔交易。在主页上,我想显示客户创建的最新交易。所以,最新交易的受益人应该列在金额明细的最前面。 我创建了类似这样的查询。但它没有显示最新的交易 $clause = "SELECT b.*, tran.transfer_amount, tran.date_added as tran_date_added FROM beneficiary b LEFT JOIN customer_beneficiary_mapping cbm ON b.id
$clause = "SELECT b.*, tran.transfer_amount, tran.date_added as tran_date_added
FROM beneficiary b
LEFT JOIN customer_beneficiary_mapping cbm ON b.id = cbm.ben_id
LEFT JOIN
(SELECT ben_id, transfer_amount, date_added
FROM transaction
GROUP BY ben_id
) tran
ON tran.ben_id = b.id
INNER JOIN system_country_list scl ON scl.country_id = b.ben_country
AND cbm.cus_id = '$cus_id'
ORDER BY tran.date_added DESC
";
也许这样行得通:
SELECT b.*, tran.transfer_amount, tran.date_added as tran_date_added
FROM beneficiary b
LEFT JOIN customer_beneficiary_mapping cbm ON b.id = cbm.ben_id
LEFT JOIN
(SELECT ben_id, transfer_amount, date_added
FROM transaction
GROUP BY ben_id
) tran
ON tran.ben_id = b.id
AND tran.date_added = (SELECT MAX(date_added) FROM transaction WHERE ben_id = b.id)
INNER JOIN system_country_list scl ON scl.country_id = b.ben_country
AND cbm.cus_id = '$cus_id'
ORDER BY tran.date_added DESC
请注意,我刚刚在where子句中添加了一个子SELECT:AND tran.date_added=SELECT MAXdate_added,这是从我找到解决方案的事务中添加的。如果有人需要,我会发布答案,而不是删除问题
$clause = "SELECT b.*, tran.transfer_amount, tran.date_added as tran_date_added
FROM beneficiary b
LEFT JOIN customer_beneficiary_mapping cbm ON b.id = cbm.ben_id
LEFT JOIN
(SELECT ben_id, transfer_amount, date_added
FROM transaction
GROUP BY ben_id
ORDER BY 1 DESC <----- Added this line
) tran
ON tran.ben_id = b.id
INNER JOIN system_country_list scl ON scl.country_id = b.ben_country
AND cbm.cus_id = '$cus_id'
ORDER BY tran.date_added DESC
";
我还是不知道,为什么它现在起作用了。我也尝试过按日期订购,之前添加了DESC。但是,它不起作用。不管怎样,它现在正在工作 有更好的答案:-见上面的评论^^^可能重复的