sql - 改进连接表的 SQL 查询
问题描述
我有一个 table.contact_group 和 table.contact 联系人的组存储在字段“group_id”varchar 中的“table.contact”中
示例数据:;11;22;33;44;55;
其中 11,22,33,44,55 是 table.contact_group.group_id
数据库中有很多数据,我无法修改数据。我不得不尝试更改为 JOIN 查询,性能并没有提高。
我的最后一个选择是,努力修改数据库,并创建一个“连接”表来处理 table.contact_group 和 table.contact 之间的关系 (M:M)
SELECT cg.group_id, cg.group_title , COUNT(c.contact_id) AS total
FROM nano_contacts_group cg , nano_contacts c
WHERE cg.organization_id = '1' AND cg.group_active = '1' AND c.group_id LIKE CONCAT('%;',CONCAT( cg.group_id,';%'))
GROUP BY cg.group_id
ORDER BY cg.group_title ASC
我希望可以让 SQL 专家分享他/她的意见,我想做什么。
解决方案
推荐阅读
- java - 为什么在 Effective Java 中推荐使用静态方法?
- python-3.x - 使用 configparser 导入系统路径不起作用
- android - 反应本机linkedin登录正在重定向到url
- javascript - 从数组中删除所有具有特征 X 的元素,除了最新的
- android - Android Spinner 使项目可点击但不可选择
- php - Magento 2 - 从运输中的自定义字段获取数据并显示在管理 > 销售 > 订单和电子邮件中
- python - 将项目附加到 Pandas Dataframe 以表现得像打印语句
- python - for 循环内的变量范围(imaplib 库文档)
- java - JasperReports 创建 JasperReportBuilder 的公共报告
- java - 如何用超类中存在的名称重命名方法?