java - 如何创建 mysql dynamc 透视行到列
问题描述
我正在寻求解决以下问题:
SELECT DISTINCT
_2_12_company.companyInitials,
_2_05_comptype.typeInitials
FROM
_2_12_company,
_2_05_comptype,
_2_19_companycomptype
WHERE
_2_12_company.id = _2_19_companycomptype.companyID
AND _2_05_comptype.id = _2_19_companycomptype.typeID
这是结果
AMAZON | MICROSOFT
AMAZON | FACEBOOK
AMAZON | ALI EXPRESS
但我希望结果以动态方式如下所示
AMAZON | MICROSOFT/FACEBOOK/ALI EXPRESS
解决方案
您似乎正在寻找聚合:
SELECT DISTINCT
c.companyInitials,
GROUP_CONCAT(t.typeInitials ORDER BY t.id SEPARATOR '/') typeInitials
FROM
_2_12_company c
INNER JOIN _2_19_companycomptype ct
ON c.id = ct.companyID
INNER JOIN _2_05_comptype t
ON t.id = ct.typeID
GROUP BY c.companyInitials
笔记:
始终使用显式的标准连接(使用
ON
关键字)而不是老式的隐式连接;这是 25 年来的最佳实践表别名使查询更易于编写、读取和维护
推荐阅读
- common-lisp - 如何在lisp中将字符作为列表返回
- python - 以提升的权限运行 Pyinstaller EXE 文件
- javascript - 为什么脚本和样式表不能通过 HTTP 加载?
- javascript - Javascript动态确定函数调用的一部分
- c# - 没有从构造函数调用 yield 返回的方法?
- python - 将 boto3 与临时凭据一起使用
- java - 小数点后的数字被零替换
- c - 有哪些方法可以检查具有特定 pid 的进程是否存在并处于活动状态?
- java - 当没有条件语句时,我的 for 循环如何跳过我的扫描仪功能之一
- firebase - 使用 NPM 添加后无法将 firebase 导入 vue