首页 > 解决方案 > 改进连接表的 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 专家分享他/她的意见,我想做什么。

标签: sql

解决方案


推荐阅读