首页 > 解决方案 > 将 ORDER BY 添加到 LEFT OUTER JOIN

问题描述

我的照片不正常。在$t_adpics表中有一个picidAUTO_INCREMENT 列。我想使用picidID 按从低到高的顺序显示图像。

SELECT a.*, p.picid
FROM $t_ads a
LEFT OUTER JOIN $t_adpics p ON a.adid = p.adid
WHERE a.adid > 0
GROUP BY a.adid
ORDER BY a.adid DESC, p.picid ASC

所以,我p.picid在 SELECT 部分添加,然后在我添加的 ORDER BY 中添加p.picid ASC,但图像仍然以任何顺序显示。

标签: mysqlsqlsql-order-by

解决方案


简而言之,将 p.picid 放在 ORDER BY 子句中的第一位或不理会它。

TLDR;
如果您想按“右侧”的图片对列表进行排序,我怀疑 LEFT OUTER JOIN 在这里是否适用。我想 INNER JOIN 会更适合这里。
此外, GROUP BY 与SELECT *. 您只能在此处使用分组字段或聚合。


推荐阅读