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

阿里外贸平台网站建设自己怎么创建网站

阿里外贸平台网站建设,自己怎么创建网站,包装设计用什么软件,辽宁省建设培训中心网站本场景对应情景如下: 三个数据表,一个表的两个字段分别关联了另外两个表各自的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/516077.html

相关文章:

  • 海南哪家公司做网站做的好产品推广运营的公司
  • 门户网站有武汉seo服务多少钱
  • 泉州做网站seo的搜索引擎广告形式有哪些
  • 潍坊专业网站建设怎么收费关键词如何优化排名
  • 做网站dreamwa哈尔滨网站优化流程
  • 在网站里面如何做支付工具百度网站认证
  • 网站建设预期周期网站需要改进的地方
  • 燕郊网站建设北京seo优化哪家公司好
  • 幸运飞艇网站建设正规推广赚佣金的平台
  • 深圳龙华网站建设公司网站搜索系统
  • 做漫画网站 漫画哪找如何做企业网页
  • 怎们自己做网站百度seo公司一路火
  • 河北省建设厅网站怎么登陆售卖链接
  • 最珠海appseo从0到1怎么做
  • 定制鞋子哪个网站好爱站网长尾关键词挖掘工具的作用
  • 安徽工程建设信息网站进皖企业百度seo教程
  • 二手书的网站建设朋友圈广告代理商官网
  • 智慧团建登录入口官网电脑版韶关seo
  • 手机网站导航设计360安全网址
  • 做网站图片切图是什么重庆好的seo平台
  • 网页图片代码合肥seo网站建设
  • 做营销网站视频seo外包方法
  • 西安公司网站建设哪家专业余姚关键词优化公司
  • 网站布局软件网站seo培训
  • 化州网站开发公司关键词优化排名要多少钱
  • 做网站难怎么做个网站
  • 如何做新网站保留域名搜索引擎优化关键词选择的方法有哪些
  • 西安360免费做网站水果网络营销推广方案
  • 库尔勒网站建设seo公司重庆
  • 网站做自动群发百度搜录宁波网络推广产品服务