我在连接必须在Mysql中分组的表时排序结果时遇到问题。
这是我的表设置。
所有者表
图片上传表
owner_id字段是自动增量,image_id字段也是如此。
我要做的是获取最后三张上传图片的owner_name,但不是同一所有者。因此,在该示例中,我希望它返回以下结果。
测试所有者3 测试所有者1 测试所有者2
在该示例中,要上载的最后一个所有者是测试所有者3,然后是测试所有者1,然后是测试所有者2.
我使用以下查询,但它没有返回正确的结果
$sql = "SELECT u.*, s.* FROM UPLOAD_TBL u, OWNER_TBL s WHERE u.ownerid = s.owner_id
GROUP BY s.owner_id ORDER BY u.image_id DESC LIMIT 0, 3";
非常感谢您设置此查询的任何帮助。
答案 0 :(得分:1)
您应该只按owner_id进行分组,然后使用LIMIT 3的upload_date DESC进行排序
答案 1 :(得分:1)
如下:
select distinct(owner_id), owner_name from owner inner join images on images.ownerid = owner.ownerid order by images.upload_date desc limit 3
答案 2 :(得分:1)
查看您是否可以对聚合图像ID进行排序:
select s.owner_id, s.owner_name, max(u.imag_id) as last_image_id
from UPLOAD_TBL u
inner join OWNER_TBL s on s.ownerid = u.owner_id
group by s.owner_id, s.owner_name
order by last_image_id desc
limit 3