SELECT *
FROM users
LEFT JOIN payments ON payments.user_id = users.user_id
WHERE payments.id = (SELECT max(p2.id)
FROM payments p2
WHERE payments.user_id = p2.user_id)
是我当前用于选择用户信息及其最后一笔交易的查询。问题是我想选择用户,即使他们在数据库中没有事务,我该怎么做?
我正在使用的表结构非常简单:
USERS - user_id, name
PAYMENTS - id, user_id, method
最佳答案
您可能最好(性能方面)加入这样的子查询:
SELECT *
FROM users u
LEFT JOIN
(Select user_id, max(id) from payments group by user_id) p
ON p.user_id = u.user_id
通过在Where子句中放置任何条件,您可以将其转变为内部联接,
关于php - 如何正确 LEFT JOIN 用户进行交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5690081/