我正在加载大量数据来创建提要。在此过程中,必须有一个左联接来添加其他数据。因此,您了解对性能有很高的要求。
不需要通过主ID进行排序-因此是不必要的,但是需要的是对左连接零件进行排序。
考虑以下示例:
SELECT p.*, atts.name
FROM products as p
LEFT JOIN attributes as atts ON p.product_id = atts.product_id
现在我需要添加类似
ORDER BY ??DEFAULT_PRODUCT_ORDER??, atts.position ASC
我试图搜索此问题,但我发现最接近的事物以group by / max answers结尾。
使用:MySQL / MariaDB
编辑:我还考虑过通过子查询对SQL中的属性进行预处理,该查询将对它们进行排序并将它们连接为1列-但这不会很有效吗?
最佳答案
不知道您到底要寻找什么,您可以尝试一些方法
SELECT p.*, group_concat(atts.name)
FROM products as p
LEFT JOIN attributes as atts ON p.product_id = atts.product_id
Group BY /*all columns not included in aggregate (noc necc for mysql but other dbs like mssql get crazy about that*/
关于mysql - SQL保留默认顺序,但对左联接应用子顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41575497/