SQL内部加入订单问题

时间:2017-11-22 15:54:26

标签: mysql sql group-by sql-order-by

我试图从数据库中选择我的选择并且结果是错误的。我试图获得ASC订购。这是我的选择代码:

SELECT b.product_id, a.file_destination
FROM images AS a 
INNER JOIN product_images AS b
WHERE a.image_id = b.image_id
GROUP BY b.product_id
ORDER BY b.order ASC

随着这个我得到某种随机顺序。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

b.order不在GROUP BY中。它也没有聚合功能。因此,不应该允许它。正确形成的查询看起来更像是这样:

SELECT pi.product_id, MAX(i.file_destination)
FROM images i INNER JOIN
     product_images pi
WHERE i.image_id = pi.image_id 
GROUP BY pi.product_id
ORDER BY MAX(pi.order) ASC;

答案 1 :(得分:0)

好的,我想我找到了解决方案。最终的代码是:

SELECT b.product_id, a.file_destination
FROM images AS a 
INNER JOIN product_images AS b
ON a.image_id = b.image_id
WHERE b.order = 1
GROUP BY b.product_id