当前位置: 首页 > wzjs >正文

中信建设官方网站软件下载关键词优化推广排名

中信建设官方网站软件下载,关键词优化推广排名,wordpress新建相册页面,中英文网站asp怎么做本场景对应情景如下: 三个数据表,一个表的两个字段分别关联了另外两个表各自的id数据,可能包含多个id(两个1对多关联)。 目录 数据表准备 需求1、查询c表的列表数据,要求获得关联的b表中的name&#xf…

本场景对应情景如下:

三个数据表,一个表的两个字段分别关联了另外两个表各自的id数据,可能包含多个id(两个1对多关联)。

目录

数据表准备

需求1、查询c表的列表数据,要求获得关联的b表中的name(多个)

需求2、在需求1基础上,同时查询关联的a表的name(多个)

需求3、在需求2基础上,增加整体聚合结果按“创建时间”排序、分页


数据表准备

共三张表,a、b、c,c表中关联了a和b的id

demo_bs表

ae822a1d5b33478cb4ad0cb5313eae50.png

demo_as表

f95b2267035949209fa34ea660ccad3a.png

demo_cs表

94cdf3ea6629474e988878aaf548c287.png

a_ids:关联的a表的id列表,使用英文逗号分隔;可不关联a,不关联时为空字符串;

b_ids:关联的b表的id列表,使用英文逗号分隔;必定关联了b中的某些id,至少关联了1个;

需求1、查询c表的列表数据,要求获得关联的b表中的name(多个)

         select c.id AS id,c.name AS name,c.created_at AS createdAt,c.b_ids as bIDs, c.a_ids as aIDs, group_concat(b.name SEPARATOR ',')  as bNamesfrom demo_cs  cleft join demo_bs  bon FIND_IN_SET(b.id, c.b_ids) > 0where c.name like '%c%'group by c.id

查询结果

b30c61afa3234824a9860ad3ae7cb19b.png

其中where c.name like '%c%'为c表本表的name字段查询条件。

FIND_IN_SET(b.id, c.b_ids) > 0表示检查b.id值在c.b_ids中的索引(且后者是以逗号拼接的字符串),索引从1开始,因此判断结果只要>0则表示前者在后者中存在。

group_concat(b.name SEPARATOR ',')表示将b表的name字段以逗号拼接作为新的一列,那么是b表的哪些name呢?即符合on FIND_IN_SET(b.id, c.b_ids) > 0 条件的记录的name。

需求2、在需求1基础上,同时查询关联的a表的name(多个)

select r.id,r.name,r.createdAt,r.bIDs as bIDs,r.bNames as bNames,r.aIDs as aIDs,group_concat(a.name SEPARATOR ',') as aNamesfrom(select c.id AS id,c.name AS name,c.created_at AS createdAt,c.b_ids as bIDs, c.a_ids as aIDs, group_concat(b.name SEPARATOR ',')  as bNamesfrom demo_cs  cleft join demo_bs  bon FIND_IN_SET(b.id, c.b_ids) > 0where c.name like '%c%'group by c.id) rleft join demo_as aon FIND_IN_SET(a.id, r.aIDs) > 0where  r.bNames like '%b%'group by r.id

查询结果

ae5a3a1db82d4da2baad1d92c502c8ca.png

其中where  r.bNames like '%b%'为聚合后数据的b的名称列表的查询条件。此时用于在内部查询基础上如

b5_hello,bb3,b2

中(即bNames)判断是否包含b。如果将此条件放在子查询内部:如

where  b.name like '%b%'

会导致数据不准确,b.name like查询的是仅b表的name字段的模糊查询,可能会导致子查询查出的数据量减少,注意查询条件的定位,不同位置含义不同。

因为查询的主表是c表,因此from内部的子查询为数据基本盘,from内部的子查询的数据准确则整体数据准确。

需求3、在需求2基础上,增加整体聚合结果按“创建时间”排序、分页

select r.id,r.name,r.createdAt,r.bIDs as bIDs,r.bNames as bNames,r.aIDs as aIDs,group_concat(a.name SEPARATOR ',') as aNamesfrom(select c.id AS id,c.name AS name,c.created_at AS createdAt,c.b_ids as bIDs, c.a_ids as aIDs, group_concat(b.name SEPARATOR ',')  as bNamesfrom demo_cs  cleft join demo_bs  bon FIND_IN_SET(b.id, c.b_ids) > 0where c.name like '%c%'group by c.id) rleft join demo_as aon FIND_IN_SET(a.id, r.aIDs) > 0where  r.bNames like '%b%'group by r.idorder by r.createdAt desclimit 10 offset 0

查询结果

1e42b34cebff4cf28af7aa37cb555b0c.png

注意,外层的on FIND_IN_SET(a.id, r.aIDs) > 0 条件是作用在a表和查询出来的r结果之上因此aIDs即使为空字符串,也不会导致最终结果的数量减少,而是对应的aNames查出来为空而已(aIDs没有id,对应的aNames为空正常)。

如果需要第二页,则将最后面的limit 10 offset 0 换为 limit 10 offset 10即可。

http://www.dtcms.com/wzjs/166871.html

相关文章:

  • 大型网站一般用什么语言做的互联网推广中心
  • o2o模式的电商平台网站有哪些广安网站seo
  • php在动态网站开发中的应用研究ip网站查询服务器
  • 做配资网站友妙招链接
  • 长沙做最好网站网站seo完整seo优化方案
  • 河南网站建设服务公司百度首页广告多少钱
  • 广东网站制作地推app
  • 苹果自带建设网站企业seo职位
  • 知名的集团门户网站建设企业能搜任何网站的浏览器
  • 浏览器网页视频下载深圳网站优化推广
  • 做策划的网站市场营销方案范文
  • 广发证券 网站谁做的广告外链购买平台
  • 网站开发vsc网站开发公司app开发公司有哪些
  • 安卓网站开发谷歌浏览器app下载安装
  • 公司网站制作可以使用开源系统吗百度提问登录入口
  • 政府机关网站模版外贸网站推广公司
  • 网站建设 乐清网络公司百度链接地址
  • 全国最新产品代理商seo是哪里
  • 江西省上饶市城乡建设网站网络推广平台几大类
  • 网站建设合作合同范文百度搜索推广登录入口
  • 做信息类网站怎么赚钱资源链接搜索引擎
  • 政府网站建设研究观点百度网站收录提交
  • 最简单的网站开发seo快速优化
  • 网站宣传虚假处罚标准郑州官网网站推广优化公司
  • wordpress dux5.1网站自然排名优化
  • 淄博网站建设方案中国三大搜索引擎
  • 商务网站策划 网站目标与经营模式定位seo站长工具下载
  • 网站建设服务 行业代码百度投诉中心电话
  • 国外二手手表网站优化营商环境的金句
  • 齐全的赣州网站建设江门seo