一文教你使用sql快速查询1对多数据关系,生成一个多维数据!

本篇文章主要讲解:利用mysql的sql特性,实现对多表查询下,一个用户对应多条记录数据查询为一条数据并以列表形式显示的教程。
日期:2024年6月17日
作者:任聪聪

一、创建数据库表

创建test_a表,内容如下:

在这里插入图片描述

创建test_b表,内容如下:

在这里插入图片描述

二、填充测试数据

步骤一、点击数据表进入到详情,点击数据生成

在这里插入图片描述

步骤二、配置字段类型及信息

在这里插入图片描述
提示:记得勾选所有的数据表

步骤三、点击单个字段进行配置规则

在这里插入图片描述
end:完成所有配置后点击下一步。

步骤四、查阅自己的测试数据是否正确

在这里插入图片描述
注意:这里我们是多的关系,所以一个用户需要多个产品信息及记录,故此尽量填写循环1-100内,使得1000条数据中大部分都是有一个用户多条产品信息的数据。

在这里插入图片描述

步骤五、点击开始生成数据

在这里插入图片描述
生成完毕:
在这里插入图片描述

三、实现查询效果

1、实现查询一个用户显示产品信息为产品1,产品2,产品3

效果:

在这里插入图片描述
可以看到,我们通过sql直接将用户关联的产品进行了单独的字段定义,并按照我们的要求进行了输出。

sql实例:

 SELECT 
a.id,
GROUP_CONCAT(b.product_name SEPARATOR ', ') AS b_list 
FROM 
test_a A
LEFT JOIN 
    test_b b ON a.id = b.a_id  
WHERE 
a.id = 1
 GROUP BY 
a.id;

2、实现多表查询输出json对象类型-固定字符串

效果:

在这里插入图片描述

sql实例:

SELECT 
    a.id,
    JSON_aRRaYaGG(JSON_ObJECT(
        b.a_id,
        'b.product_name')) aS b_json
FROM 
    test_a a
LEFT JOIN 
    test_b b ON a.id = b.a_id
WHERE 
    a.id = 1
GROUP bY 
    a.id;

3.实现查询json数据对应的多表关系数据

效果:

在这里插入图片描述

sql实例:

SELECT 
    a.id,
    JSON_aRRaYaGG(JSON_ObJECT(
        b.a_id,
        b.product_name)) aS b_json
FROM 
    test_a a
LEFT JOIN 
    test_b b ON a.id = b.a_id
WHERE 
    a.id = 1
GROUP bY 
    a.id;

附件:

数据表格创建sql语句:

/*
 Navicat Premium Data Transfer

 Source Server         : mysqlLocal
 Source Server Type    : MySQL
 Source Server Version : 50738 (5.7.38-log)
 Source Host           : localhost:3306
 Source Schema         : test

 Target Server Type    : MySQL
 Target Server Version : 50738 (5.7.38-log)
 File Encoding         : 65001

 Date: 17/06/2024 20:37:39
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for test_b
-- ----------------------------
DROP TABLE IF EXISTS `test_b`;
CREATE TABLE `test_b`  (
  `a_id` int(11) NOT NULL,
  `product_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for test_a
-- ----------------------------
DROP TABLE IF EXISTS `test_a`;
CREATE TABLE `test_a`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
  `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
  `reg_time` datetime NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1001 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/717475.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业内网是如何禁用U盘的?电脑禁用U盘有哪些方法?

在当今企业环境中,数据安全和信息保护至关重要。 为了防止数据泄露和恶意软件传播,很多企业选择在内网中禁用U盘,以控制数据的物理传输。 小编这就来给大家总结一份详细指南!! 关于企业内网如何禁用U盘的指南&#x…

比尔·盖茨启动新项目,拟投资数十亿美元建设新一代核电站

KlipC报道:微软联合创始人比尔盖茨表示,他准备投入数十亿美元在怀俄明州建设新一代核电站项目,用来满足美国不断增长的电力需求。 在周日的一次采访中,比尔盖茨表示他创办的初创公司TerraPower上周在怀俄明州已经破土动工&#x…

揭示SOCKS5代理服务器列表的重要性

在复杂的网络安全领域中,SOCKS5代理在保护在线活动方面发挥着关键作用。本文深入探讨了SOCKS5代理服务器列表的细节,探讨了它们的应用、优势以及在增强在线安全和隐私方面不可或缺的功能。 一、理解SOCKS5代理服务器列表 作为在客户端和服务器之间进行通…

FlowUs息流开启知识管理的新纪元|FlowUs息流公开知识库

在信息爆炸的时代,如何高效地管理和利用知识成为了一个挑战。FlowUs知识库以其超巨的性价比,为用户带来了全新的解决方案。它不仅仅是一个存储信息的工具,更是一个能够激发创造力和提高生产力的平台。 性价比之选 FlowUs以其合理的价格&…

Mysql开启查询日志(General Log)

1、增加配置: /etc/my.cnf [mysqld] general_log1 general_log_file/var/log/mysql/query.log 2、增加目录和文件,并且授权 可以使用以下命令修改权限: 创建目录:sudo mkdir -p /var/log/mysql 更改目录所有者:sudo…

反射复习(java)

文章目录 反射机制的作用反射机制的原理加载机制详细解释 获取 Class 对象反射获取构造方法:获取 Class 对象里面 Constructor 对象反射获取成员变量:获取Class 对象里面的 Field 对象反射获取成员方法:获取 Class 对象里的 Method 对象其他常…

C#聊天室客户端完整③

窗体 进入聊天室界面(panel里面,label,textbox,button): 聊天界面(flowLayoutPanel(聊天面板)): 文档大纲(panel设置顶层(登录界面),聊天界面在底层) 步骤:设置进入聊天室→输入聊天→右边自己发送的消息→左边别人发的消息 MyClient.cs(进入聊天室类) …

轮式机器人Swiss-Mile城市机动性大提升:强化学习引领未来城市物流

喜好儿小斥候消息,苏黎世联邦理工学院的研究团队成功开发了一款革命性的机器人控制系统,该系统采用强化学习技术,使轮式四足机器人在城市环境中的机动性和速度得到了显著提升。 喜好儿网 这款专为轮腿四足动物设计的控制系统,能…

crmeb Pro版/多店版商城付费会员、会员卡功能说明

一、功能介绍 用户开通付费会员后,可获得多项商城优惠,商家可通过此功能锁定重要客户,培养客户消费习惯等 二、操作流程 用户 > 会员管理 > 付费会员 三、功能说明 1. 会员类型 付费卡类型:月卡、季卡…

【电机控制】FOC算法验证步骤——PWM、ADC

【电机控制】FOC算法验证步骤 文章目录 前言一、PWM——不接电机1、PWMA-H-50%2、PWMB-H-25%3、PWMC-H-0%4、PWMA-L-50%5、PWMB-L-75%6、PWMC-L-100% 二、ADC——不接电机1.电流零点稳定性、ADC读取的OFFSET2.电流钳准备3.运放电路分析1.电路OFFSET2.AOP3.采样电路的采样值范围…

RNN-循环神经网络

1.前者的输出作为后者的输入(循环),有先后关系的信息,前影响后,时间序列。处理数字信息。 2.独热编码 ont-hot Encoding:处理的文字数据地位相同,相当于用二进制数01给数据编码,会增…

学习笔记——网络管理与运维——SNMP(SNMP原理)

四、SNMP原理 SNMP的工作原理基于客户端-服务器模型。其中,网络管理系统是客户端,而网络设备是服务器。客户端向服务器发送请求消息(即"Get"或"Set"命令)来获取或修改服务器的信息。服务器收到请求消息后,会返回相应的响…

使用volta管理前端开发环境

背景:公司有新老不同的产品,使用的node版本不一样,每次都要手动切换node版本,对应的项目才能运行。这样很麻烦,有没有好的解决方法,就找到了volta。 1.为什么是volta? 管网介绍:使用…

中文翻译藏语的软件都有哪些?分享3款实用的!

在数字化时代,语言不再是沟通的障碍。随着科技的飞速发展,中文翻译藏语的软件层出不穷,为那些对藏族文化感兴趣或需要在藏区工作、旅行的人们提供了极大的便利。本文将为您盘点几款热门的中文翻译藏语软件,助您轻松跨越语言鸿沟。…

AMEYA360代理:纳芯微NSOPA240x系列破解旋转变压器之“难”

随着市场对高精度、高性能电机控制技术的不断追求,旋转变压器作为其核心部件之一,其精确测量角度位置和转速的能力显得尤为重要。 然而,旋转变压器驱动电路的特殊要求一直是行业发展的技术瓶颈。为解决这一挑战,纳芯微近日发布了全…

抖音a_bogus,mstoken全参数爬虫逆向补环境2024-06-15最新版

抖音a_bogus,mstoken全参数爬虫逆向补环境2024-06-15最新版 接口及参数 打开网页版抖音,右键视频进入详情页。F12打开控制台筛选detail,然后刷新网页,找到请求。可以发现我们本次的参数目标a_bogus。a_bogus有时长度为168有时为172&#xf…

Node.js安装扫盲

一、Node.js安装 在官网下载node.js安装包 双击打开node-v20.14.0-x64.ms文件,点击运行 进入安装Node.js的对话框,点击Next继续 勾选复选框后点击Next继续 默认安装路径 默认配置 这里不需要勾选,直接点击Next 点击Install 二、Node.js验…

PyQt5和Eric7的安装使用 —— Python篇

需要安装Python的朋友请看另一篇文章: windows系统安装Python -----并安装使用Pycharm编辑器 一、安装PyQt5: 1、方法一:使用pip命令在线安装。 输入以下命令可以直接安装: pip install PyQt5 由于安装默认使用国外的镜像&a…

【免费Web系列】大家好 ,今天是Web课程的第二二天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 员工管理 1. 修改员工 对于修改功能,分为两步实现: 点击 “编辑” 根据ID查询员工的信息,回显展示。 点击 “保存” 按钮,修改员工的信息 。 1.1 回显…

行业透视 | ERP系统成熟度评判:五个关键能力解析-亿发

在现代企业管理中,ERP系统(企业资源计划系统)已成为不可或缺的工具。然而,什么样的ERP系统才算是成熟的?以下几个关键能力,是一个成熟的ERP系统所必备的,缺一不可。 数据一体化,远离…