您应该真正查看Database normalization并首先通过添加联结表来规范化您的结构,并保存表格中的关系,存储在tablec中的每个关系都将存储在新的联结表中,但不能作为逗号分隔列表,每行将包含c和一个用户的id每行id,如果无法更改架构,可以使用find_in_set查找set中的值

select *

from tblC c

JOIN tblB b

ON (find_in_set(b.userid,c.userids) > 0)

where c.nname="new1"

编辑规范化架构

我已从tblC中删除了userids列,而是创建了一个新的联结表,因为tblC_user有2列c_id这将与tblC的id列相关,第二个userid用于存储tblC的用户关系用户参见tblC的示例模式

CREATE TABLE if not exists tblC

(

id int(11) NOT NULL auto_increment ,

nname varchar(255),

PRIMARY KEY (id)

);

INSERT INTO tblC (id, nname) VALUES

('1', 'new1'),

('2', 'new2'),

('3', 'new3'),

('4', 'new4'),

('5', 'new5');

这是你的联结表作为tblC_user

CREATE TABLE if not exists tblC_user

(

c_id int,

userid int

);

INSERT INTO tblC_user (c_id,userid) VALUES

('1','1'),

('1','2'),

('2','1'),

('2','3'),

('3','1'),

('3','4'),

('4','3'),

('4','2'),

('5','5'),

('5','2');

在上面如果你注意到我没有存储任何逗号分隔关系,tblC的用户的每个关系都存储在新行中,对于你关注的结果集我在连接中使用过联结表也新的查询将如下所示

select *

from tblC c

join tblC_user cu on(c.id = cu.c_id)

join tblB b on (b.userid = cu.userid)

where c.nname="new1"

现在上面的查询可以通过使用索引来优化,您可以轻松地维护级联关系

mysql 逗号 join_mysql – sql join表,其中1列有逗号相关推荐

  1. SQL 把表中字段存储的逗号隔开内容转换成列表形式

    原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ...

  2. oracle一个表更新另一个表多列,oracle sql更新表中多列值,值是从其它表中查询(select)得出...

    案例描述:sql 将表vehicle中列pay_money_remain的值分为2/3,1/3再更新到表vehicle的pay_money_remain,disinfectionbal_remains ...

  3. MySQL的7种JOIN表连接结果集,你了解几个?搞懂仅需1张图

    目录 实践 第一种 第二种 第三种 第四种 第五种 第六种 第七种 大家好呀!我是爷爷的茶七里香,周末啦~开森~,今天突然想起曾经面试遇到的MySQL题目,记录下来方便查阅!!!  MySQL的7种表 ...

  4. mysql left join_MySQL LEFT JOIN 语法用法与实例

    MySQL LEFT JOIN 语法 SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配记录.LEFT JOIN 基本语法如下: ... ...

  5. mysql hash join_MySQL Hash Join

    在MySQL 8.0.18之前,表的join方式只有嵌套循环(nested loop)这一种方式,8.0.18推出了hash join的方式以替代嵌套循环. 使hash join方式生效的前提是用于j ...

  6. mysql self join_mysql self join的实现--left join 和inner join

    上图中reportsTo 列的数据是manager id,找出manager的查询方法如下: SELECT CONCAT(m.lastname,', ',m.firstname) AS 'Manage ...

  7. SQL提取表中某列字符长度为2的所有记录

    有一个表WB,包含两列character和wb  //表中数据截图如下 从图中可以看出wb列的各行数据的长度是不一样的, 现在我想把wb列中长度为二,即只有两个字符的所有记录 给提取出来,我们该如何写 ...

  8. mysql调换数据_mysql互换表中两列数据方法

    1.创建表及记录用于测试 CREATE TABLE product ( id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '产品id', name ...

  9. SQL JOIN TABLES:在SQL Server中使用查询

    In this article, you will see how to use different types of SQL JOIN tables queries to select data f ...

最新文章

  1. 西部数码买哪处线路的云服务器,云服务器买哪个区合适
  2. 进程程序替换(自主实现shell)
  3. React Native开发之npm start加速
  4. boost::equal相关的测试程序
  5. SSH2+Daoz项目中的分页查询
  6. 51单片机使用定时器进行数码管动态扫描程序
  7. Java并发篇_synchronized
  8. 面向业务的立体化高可用架构设计
  9. [APIO2010]特别行动队
  10. /dev/socket/vold exploit 本地提权漏洞
  11. Android----Intent详解
  12. Unity 基础资源知识汇总学习
  13. Power BI 数据分析可视化软件入门教程
  14. 互联网晚报 | 7月10日 星期天 | 快手官宣:7月18日周杰伦独家直播;​400亿额度,秒光!7月总票房破10亿...
  15. oracle imp命令参数,oracle EXP/IMP 命令参数
  16. 内置函数--inline
  17. python自动上传图片_Python+selenium自动上传博客图片至新浪微博相册
  18. 深度学习 图像分割开源代码(附链接,超级全)
  19. java毕业设计—— 基于java+JSP+SSH的任务调度系统设计与实现(毕业论文+程序源码)——任务调度系统
  20. 物联网的2018:这是百花齐放的一年

热门文章

  1. java只有jre_只安装了jre可以运行java程序吗
  2. js弹框带传值父窗口给子框_layer弹窗,父页面 子iframe 兄弟iframe之间传值,函数调用...
  3. 连接思科无线经常出现获取不到地址_思科(cisco)路由器登录IP地址默认密码说明...
  4. git之配置在Terminal显示git分支
  5. git中如何提交空目录
  6. 一周第四次课(3月22日)
  7. LR:Code-29723 Error: Failed to deliver a p2p message from parent to child process, reason。。。
  8. SpringBoot实战总汇--详解
  9. Redis 网络编程
  10. python print table_python 6.7 编写printTable()函数表格打印(完整代码)