来自MySQLi查询的不同值

时间:2016-01-15 21:39:08

标签: php mysql mysqli

我正在尝试仅为我正在运行的查询显示唯一的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等...)

1 个答案:

答案 0 :(得分:3)

我怀疑这就是你想要的:

SELECT userID, MAX(rentPaid) AS maxRentPaid, rentMonth
FROM yourTable
WHERE rentMonth = "April"
GROUP BY userID
ORDER BY maxRentPaid