【发布时间】:2020-06-18 20:26:59
【问题描述】:
我对 MySql 数据库有这个查询:
SELECT
pim_pimcore_database.object_query_RGL.rulecode AS "rulecode",
pim_pimcore_database.object_query_RGL.DescrizioneRegola AS "rule_desc",
pim_pimcore_database.object_relations_RGL.position AS "id",
pim_pimcore_database.objects.o_classId,
pim_pimcore_database.objects.o_key,
pim_pimcore_database.object_collection_ruleIF_RGL.Operatore,
pim_pimcore_database.object_collection_ruleIF_RGL.Concatenatore
FROM
pim_pimcore_database.object_query_RGL
LEFT JOIN pim_pimcore_database.object_relations_RGL
ON pim_pimcore_database.object_query_RGL.oo_id =
pim_pimcore_database.object_relations_RGL.src_id
LEFT JOIN pim_pimcore_database.objects
ON pim_pimcore_database.object_relations_RGL.dest_id = pim_pimcore_database.objects.o_id
LEFT JOIN pim_pimcore_database.object_collection_ruleIF_RGL
ON pim_pimcore_database.object_relations_RGL.position =
pim_pimcore_database.object_collection_ruleIF_RGL.`index`
AND pim_pimcore_database.object_relations_RGL.src_id =
pim_pimcore_database.object_collection_ruleIF_RGL.o_id
GROUP BY
pim_pimcore_database.object_relations_RGL.position AS "ID"
WHERE
pim_pimcore_database.object_query_RGL.oo_id = 1042 AND
pim_pimcore_database.object_relations_RGL.ownername ="IfStatement"
这给了我结果:
但我需要的是这样的表格:
如何更改所需输出的查询?
【问题讨论】:
-
我修正了您的格式 - 请检查更改(以便您知道下次发布问题的时间)
-
如果您使用支持 WITH 的 MySQL 版本,您可以将整个内容添加为
x,然后像x x1 JOIN x x2 ON x1.id = x2.id AND x1.o_classid = 'OPT' and x2.o_classid = 'COM'一样将其连接到自身。 ps;我们通常在 GROUP BY 之前写 WHERE (MySQL 可能允许你摆脱那种事情)并且你应该在 ONLY_FULL_GROUPBY 模式下运行你的 MySQL;此 SQL 将一列分组,但既不聚合函数也不分组选择列表中的其他列,这可能导致意外结果 -
pivot 与早期版本你可以看到stackoverflow.com/questions/61920905/…
-
在没有任何聚合函数的情况下,GROUP BY 子句永远不合适