完善表结构内容,实现多表关联语义转SQL数据库查询tosql4.0

目的

除前文应对解决的有大量表外,多表存在关联关系也是急需解决的主要问题
本节,我们将在不改变dify工作流的前提下,实现多表管理查询

说明

  1. 本节为本系列的收官文章,前文有3篇前置条件及解决思路,这里不再赘述他们分别是:语义转SQL,实现大模型对接查询数据库内数据通过dify实现大模型对接查询数据库内数据,语义转SQL2.0语义转sql 3.0 实现在大模型对大量数据表中查询数据

  2. 本文档中的所有下载的所需资源都可以在网盘下载

1.修改现有orders表结构

根据前文,我们拥有一张orders表,该表结构如下:

字段名

类型

说明

id

int

ID

goods

varchar

商品名称

user

varchar

用户名称

date

date

日期

由于上表中使用到goodsuser字段,且我们拥有另一张goods表和users表,我们需要将这两张表与orders表关联起来,则修改后的orders表结构如下:

字段名

类型

说明

id

int

ID

goods_id

int

商品ID

user_id

int

用户ID

date

date

日期

2.修改data_table_structure表的数据

2.1 手动修改orders表结构

由于我们修改了orders表结构,所以我们需要修改data_table_structure表中的数据,将orders表的goods字段和user字段修改为goods_iduser_id字段,明确goods_idgoods表的关联关系,user_idusers表的关联关系,修改后orderstable_structure的值如下:

CREATE TABLE `orders` (    `id` INT(11) NULL DEFAULT NULL COMMENT 'ID',    `goods_id` INT(11) NULL DEFAULT NULL COMMENT '货品ID',    `user_id` INT(11) NULL DEFAULT NULL COMMENT '下单用户ID',    `date` DATE NULL DEFAULT NULL COMMENT '下单日期')COMMENT='订单'COLLATE='utf8_unicode_ci'ENGINE=InnoDB;goods_id对应下述goods表结构的id字段CREATE TABLE `goods` (    `id` INT(11) NOT NULL COMMENT 'ID',    `name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '名称' COLLATE 'utf8_unicode_ci')COMMENT='商品'COLLATE='utf8_unicode_ci'ENGINE=InnoDB;user_id对应下述users表结构的id字段CREATE TABLE `users` (    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',    `name` VARCHAR(50) NOT NULL COMMENT '姓名' COLLATE 'utf8_unicode_ci',    `age` INT(11) NULL DEFAULT NULL COMMENT '年龄',    `hobby` VARCHAR(50) NULL DEFAULT NULL COMMENT '爱好' COLLATE 'utf8_unicode_ci',    `city` VARCHAR(50) NULL DEFAULT NULL COMMENT '所在城市' COLLATE 'utf8_unicode_ci',    `high_school_score` FLOAT NULL DEFAULT NULL COMMENT '高考成绩',    `cutoff_score` FLOAT NULL DEFAULT NULL COMMENT '分数线',    PRIMARY KEY (`id`) USING BTREE)COMMENT='用户表'COLLATE='utf8_unicode_ci'ENGINE=InnoDBAUTO_INCREMENT=5;

2.2自动修改orders表结构

如何你无法理解上述修改,可以直接将网盘中的tosql-4.sql文件导入到数据库中,即可自动执行前文修改。
操作步骤见语义转SQL,实现大模型对接查询数据库内数据中的-4. 创建或导入数据库和表。

3.测试效果

  1. 打开dify,选择eogee_text2sql工作流,输入张三购买了几种商品,点击立即执行

  2. 点击查看结果,可以看到如下:

4.总结

本节,我们实现了多表关联语义转SQL数据库查询4.0,通过修改orders表结构,将goodsusers表与orders表关联起来,实现了多表管理查询。
至此,语义转sql相关的教程内容就告一段落了,欢迎大家下载试用,我们的网盘中包括了本次实例的全部数据资源,期待大家的使用反馈。


完善表结构内容,实现多表关联语义转SQL数据库查询tosql4.0
http://localhost:8090/archives/wan-shan-biao-jie-gou-nei-rong-shi-xian-duo-biao-guan-lian-yu-yi-zhuan-sqlshu-ju-ku-cha-xun-tosql4.0
作者
Administrator
发布于
2025年04月21日
更新于
2025年04月21日
许可协议