欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

想请问下MySQL能不能把select关联表的结果存储到主表中?

程序员文章站 2022-04-27 21:05:51
...
是由这个如何在MySQL中存储数组的问题 产生的问题:

问题中解决存储数组的办法是做三个表,分别是uid,uid_hobby,hobby表,要查某个uid的hobby的话只能再执行select uid from uid_hobby where uid = XXX,这样每次都要执行一边挺麻烦的。

想请问下MySQL能不能把对关联表select的结果存储到主表的column中?比如uid表中有一列hobby列,这列里面存放的内容是“select uid from uid_hobby where uid = 当前id”这句话的结果?或者有什么方式可以让这个查询过程自动化一点?在创建表的时候就把这种对应关系定好,这样在查询主表的时候就能一次性查询出来,不用再去查询一遍。

就是说在select hobby from uid where uid = XXX的时候就能直接查询到did对应的hobby而不是还要再执行对关联表的查询。这样对一张表的查询只用查询一张表就完成了。

回复内容:

是由这个如何在MySQL中存储数组的问题 产生的问题:

问题中解决存储数组的办法是做三个表,分别是uid,uid_hobby,hobby表,要查某个uid的hobby的话只能再执行select uid from uid_hobby where uid = XXX,这样每次都要执行一边挺麻烦的。

想请问下MySQL能不能把对关联表select的结果存储到主表的column中?比如uid表中有一列hobby列,这列里面存放的内容是“select uid from uid_hobby where uid = 当前id”这句话的结果?或者有什么方式可以让这个查询过程自动化一点?在创建表的时候就把这种对应关系定好,这样在查询主表的时候就能一次性查询出来,不用再去查询一遍。

就是说在select hobby from uid where uid = XXX的时候就能直接查询到did对应的hobby而不是还要再执行对关联表的查询。这样对一张表的查询只用查询一张表就完成了。

select uid.* from (select uid from uid_hobby where hobby like '%游泳%') hobby_tb, uid where uid.id = hobby_tb.uid

不知道这样理解的对吗?如果是这样的话,你在调用的时候甚至不用再主表创建一个这样的字段了