我有2张桌子如下
笔记表
╔══════════╦═════════════════╗ ║ nid ║ forDepts ║ ╠══════════╬═════════════════╣ ║ 1 ║ 1,2,4 ║ ║ 2 ║ 4,5 ║ ╚══════════╩═════════════════╝ 职位表
╔══════════╦═════════════════╗ ║ id ║ name ║ ╠══════════╬═════════════════╣ ║ 1 ║ Executive ║ ║ 2 ║ Corp Admin ║ ║ 3 ║ Sales ║ ║ 4 ║ Art ║ ║ 5 ║ Marketing ║ ╚══════════╩═════════════════╝ 我想查询我的Notes表并将'forDepts'列与Positions表中的值相关联。
输出应为:
╠══════════╬════════════════════════════╣
║ 1 ║ Executive, Corp Admin, Art ║
║ 2 ║ Art, Marketing ║
╚══════════╩════════════════════════════╝
我知道数据库应该规范化,但是我不能更改此项目的数据库结构。
这将用于使用以下代码导出excel文件。
"Created For", 'Company' => "Company", 'Case ID' => "Case ID", 'Created On' => "Created On", 'Created By' => "Created By", 'Description' => "Description" ); // display field/column names as first row echo implode("\t", array_keys($colnames)) . "\r\n"; $flag = true; } $row['createdOn'] = date('m-d-Y | g:i a', strtotime($row['createdOn'])); array_walk($row, 'cleanData'); echo implode("\t", array_values($row)) . "\r\n"; } exit; ?> 此代码仅输出“ forDepts”的第一个值考试:执行人员(而不是执行人员,公司行政人员,Art)
可以通过CONCAT或FIND_IN_SET完成吗?
请帮忙!提前致谢!
SELECT a.nid, GROUP_CONCAT(b.name ORDER BY b.id) DepartmentName FROM Notes a INNER JOIN Positions b ON FIND_IN_SET(b.id, a.forDepts) > 0 GROUP BY a.nid来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。