【发布时间】:2016-01-15 21:39:07
【问题描述】:
我试图只显示我正在运行的查询的唯一用户 ID(用户 ID 是(0、1、2、3、4、5、6、7、8、9 等)。我尝试使用 DISTINCT在我的查询中,但它只显示具有 2 个或更多相同 userId 的行的唯一值。
有没有办法可以使用 php 只显示唯一值。我的弱点是数组,因为它使用来自 MySQLi 查询的数据,所以它使它变得更加复杂。
现在我有一个查询示例(假设它的 GROUP BYrentPaid 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'
编辑:请原谅我的格式,这是我的第一篇文章。
编辑:添加了查询....它很长,但有效,哈哈。我只想要 unique 用户 ID(没有双用户 ID 或三用户用户 ID 等...)
【问题讨论】:
-
做个小伙子,将查询粘贴到您的问题中。
-
如果用户标识多于一行,应该显示哪一行?
-
DISTINCT适用于选定的整行。因此,如果用户有不同的rentPaid值,它将显示它们中的每一个,因为它们并不不同。 -
您选择的不仅仅是用户 ID 列吗?请提供实际查询的示例。
-
添加了查询...它很长。