mysql - MySQL查询上的子字符串
问题描述
我有两个相互关联的表。当我想查询显示departement_name
每个请求者的所有内容时,问题就来了,但departement
不止tbl_request
一个,并且用逗号分隔。
tbl_request:
tbl_部门:
有可能像这样制作吗?如果不是,那么最好的方法是什么,至少是最接近的方法。
request_id sow request_type date requestor departement
==================================================================
11 qwer jk 2019-07-06 Lutfi DevOps,Business Dev
12 adga gadga 2019-07-06 sfags RnD,DevOps
到目前为止,我没有对子字符串做任何事情。我只是在玩通常的查询。
SELECT
tbl_request.request_id AS request_id,
tbl_request.sow AS sow,
tbl_request.request_type AS request_type,
tbl_request.date AS date,
tbl_request.requestor AS requestor,
tbl_departement.departement_name AS departement_name
FROM
`tbl_request`
LEFT JOIN
tbl_departement ON tbl_request.departement = tbl_departement.departement_id
解决方案
加入 2 个表并按请求分组。然后使用group_concat()
:
select
r.request_id, r.sow, r.request_type, r.date, r.requestor,
group_concat(d.department_name) departement
from tbl_request r inner join tbl_departement d
on concat('%,', r.department, ',%') like concat('%,', d.department_id, ',%')
group by r.request_id, r.sow, r.request_type, r.date, r.requestor, r.department
请参阅演示。
结果:
| request_id | sow | request_type | date | requestor | departement |
| ---------- | ---- | ------------ | ---------- | ---------- | ------------------- |
| 12 | qwer | jk | 2019-07-06 | Lufti Aldi | Business Dev,DevOps |
| 13 | adga | gadga | 2019-07-13 | sfags | RnD,DevOps |
推荐阅读
- java - 使用不同的布局管理器不起作用
- php - 给定 [xxxxx] 邮箱中的地址不符合 RFC 2822, 3.6.2
- asp.net - How to convert an latex image based image into dowloadable url
- java - 打开或关闭其他应用程序时如何接收广播
- excel - Excel:自定义功能区模板 (XLSTART)
- python - 使用python将csv文件转换为html中的可编辑表
- php - 根据特定规则创建 php 数组
- elasticsearch - Elasticsearch 中的“epoch_millis”是什么?( 日期格式?)
- tensorflow - Tensorflow - 减少 session.run() 开销
- python - 如何在 Python 中定义一个类并遍历它?