我正在尝试仅为我正在运行的查询显示唯一的userIds(userIds为(0,1,2,3,4,5,6,7,8,9等...)。我尝试使用DISTINCT在我的查询中,但它只显示具有2个或更多相同userId的行的唯一值。
有没有办法可以使用php来显示唯一值。我的弱点是数组,因为它使用来自MySQLi查询的数据,所以它更复杂。
现在示例我现在有了查询(比如说它的GROUP BY rentPaid DESC,所有用户的租金总额是800.00):
userID rentPaid rentMonth
2--------800.00------April
1--------500.00------April
3--------400.00------April
3--------400.00------April
1--------200.00------April
1--------100.00------April
示例所需输出:
userID rentPaid rentMonth
2--------800.00------April
1--------500.00------April
3--------400.00------April
我可以用MYSQL做这个,因为我试过DISTINCT而且它不起作用,PHP怎么样?
查询:
SELECT
properties.*,
leases.*,
users.userId, users.primaryPhone,
CONCAT(users.userFirstName,' ',users.userLastName) AS user,
admins.adminName, payments.*
FROM
properties
LEFT JOIN leases ON properties.propertyId = leases.propertyId
LEFT JOIN assigned ON properties.propertyId = assigned.propertyId
LEFT JOIN admins ON assigned.adminId = admins.adminId
LEFT JOIN users ON properties.propertyId = users.propertyId
LEFT JOIN payments ON properties.propertyId = payments.propertyId
WHERE
payments.rentMonth = '$currentMonth' AND
payments.rentYear = '$currentYear'
编辑:请原谅我的格式,这是我的第一篇文章。
编辑:添加查询....它的长,但工作大声笑。我只想要唯一 userIds(没有双重或三重userIds等...)
答案 0 :(得分:3)
我怀疑这就是你想要的:
SELECT userID, MAX(rentPaid) AS maxRentPaid, rentMonth
FROM yourTable
WHERE rentMonth = "April"
GROUP BY userID
ORDER BY maxRentPaid