返回顶部
首页 > 资讯 > 数据库 >MySQL之自关联查询
  • 350
分享到

MySQL之自关联查询

MySQL之自关联查询 2016-06-02 19:06:52 350人浏览 才女
摘要

假设要设计两张表,一张省份表(provinces),一张城市表(citys) 省份表结构 id ptitle 城市表结构 id ctitle proid(表示城市所属的省,对应着省份表的id值) 观察两张表可以发现,城市表

MySQL之自关联查询

假设要设计两张表,一张省份表(provinces),一张城市表(citys)

  • 省份表结构
    • id
    • ptitle
  • 城市表结构
    • id
    • ctitle
    • proid(表示城市所属的省,对应着省份表的id值)

观察两张表可以发现,城市表比省份表多一个字段proid,其它列的字段都是一样的。而且,存储的都是地区信息,而且每种信息的数据量有限,没必要增加一个新表,或者将来还要存储区、乡镇信息,都增加新表的开销太大。

所以定义新表chain,结构:id, name,pid

说明:因为省没有所属的省份,所以可以填写为null,城市所属的省份pid,填写省所对应的编号id

这就是自关联,表中的某一列,关联了这个表中的另外一列,但是它们的业务逻辑含义是不一样的,城市信息的pid引用的是省信息的id

在这个表中,结构不变,可以添加区县、乡镇街道、村社区等信息

准备数据:

1.首先先下载好数据库文件
2.cd:当前路径(文件所在的)
3.进入Mysql,执行:use 目标数据库名
4.导入文件:source 数据库文件名

数据文件

链接:https://pan.baidu.com/s/1S5kMzw_nk1KpR75syOKIbg

提取码:5418

练习:

-- 查询全国有多少个省?
select * from china where pid is null;

-- 查询山东省有多少个市?
select city.* from china as city
inner join china as province
on city.pid=province.id
where province.name="山东省";

-- 查询济南市下面的区县
SELECT county.* FROM china AS county
INNER JOIN china AS city ON county.pid=city.id
WHERE city.name="济南市";
您可能感兴趣的文档:

--结束END--

本文标题: MySQL之自关联查询

本文链接: https://lsjlt.com/news/8720.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL之自关联查询
    假设要设计两张表,一张省份表(provinces),一张城市表(citys) 省份表结构 id ptitle 城市表结构 id ctitle proid(表示城市所属的省,对应着省份表的id值) 观察两张表可以发现,城市表...
    99+
    2016-06-02
    MySQL之自关联查询
  • mysql之跨库关联查询(dblink)问题
    目录1、解决方案2、操作1、开启FEDERATED引擎2、建表时加上连接3、缺点总结1、解决方案 mysql是不支持跨库连接的,如果我们实在要连接的话可以用dblink方式。 解释: dblink就是我们在创建表的时候...
    99+
    2023-03-09
    mysql跨库查询 mysql跨库关联查询 mysql关联查询
  • Mysql 多表关联查询
    文章目录 1. Mysql中表之间的关系1.1 多表关系1.2 外键约束 2. 多表联合查询2.1 交叉连接查询:笛卡尔积2.2 内连接查询:inner join2.3 外连接查询2.3.1 左连接:2.3.2 右连接:2.3....
    99+
    2023-08-21
    mysql 数据库 sql
  • 【MySQL】MySQL表之联合查询(多表查询)
    📌前言:本篇博客介绍MySQL数据库的MySQL表之联合查询(多表查询),学习MySQL之前要先安装好MySQL,如果还没有安装的小伙伴可以看看博主前面的博客,里面有详细的安装教程。 那我们废话不多说,直接进入主体!...
    99+
    2023-08-16
    mysql 数据库 java
  • mysql跨库关联查询(dblink)
    dblink 1、解决方案2、操作3、缺点 1、解决方案 mysql是不支持跨库连接的,如果我们实在要连接的话可以用dblink方式。 解释: dblink就是我们在创建表的时候连接到...
    99+
    2023-09-05
    mysql
  • MySQL的多表关联查询
    一、多表关联查询 多表关联查询是使用一条SQL语句,将关联的多张表的数据查询出来。 1.1 交叉查询 交叉查询就是将多张表的数据没有条件地连接在一起进行展示。 1.1.1 语法 使用交叉查询类别和商品 -- 目标:查询所有分类,以及每个分类...
    99+
    2023-08-22
    mysql 数据库 java
  • SQL优化之多表关联查询
    慢SQL日志里看到一个三张表的关联查询,如下: 1 ...
    99+
    2024-04-02
  • mysql之跨库关联查询问题怎么解决
    这篇文章主要介绍了mysql之跨库关联查询问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql之跨库关联查询问题怎么解决文章都会有所收获,下面我们一起来看看吧。1、解决方案mysql是不支持跨库...
    99+
    2023-07-05
  • mysql关联查询如何优化
    小编给大家分享一下mysql关联查询如何优化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! mysq...
    99+
    2024-04-02
  • 关于JpaRepository的关联查询和@Query查询
    目录一 pom二 启动类三 配置文件四 新建数据库五 实体类1 Clazz2 Student六 控制器七 Repository层1 ClazzRepository2 StudentR...
    99+
    2024-04-02
  • mysql中如何跨库关联查询
    小编给大家分享一下mysql中如何跨库关联查询,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!业务场景:关联不同数据库中的表的查询...
    99+
    2024-04-02
  • 【MySQL联合查询】轻松实现数据关联
    1、联合查询 联合查询又称为多表查询,它的基本执行过程就是笛卡尔积 1.1 认识笛卡尔积 那么什么是笛卡尔积呢? 答:笛卡尔积就是将两张表放在一起进行计算,把第一张表的每一行分别取出来和第二张表的每一行进行连接,得到一个新的行。 ...
    99+
    2023-09-15
    mysql 数据库 sql Powered by 金山文档
  • SQL 关联子查询
    目录一、普通的子查询和关联子查询的区别二、关联子查询也是用来对集合进行切分的三、结合条件一定要写在子查询中请参阅 学习重点 关联子查询会在细分的组内进行比较时使用。 关联子查询和 GROUP BY 子句一样,也可以对表中的数据进...
    99+
    2016-06-28
    SQL 关联子查询
  • mysql 联合查询
    mysql联合查询 联合查询:union,将多次查询(多条select语句)的结果,在字段数相同的情况下,在记录的层次上进行拼接。 基本语法 联合查询由多条select语句构成,每条select语句获取的字段数相同,但与...
    99+
    2023-08-31
    数据库 sql mysql
  • MyBatis注解开发之实现自定义映射关系和关联查询
    目录一、使用注解实现自定义映射关系1. 编写注解方法2. 编写测试方法3. 查看运行结果 二、使用注解实现一对一关联查询1. 编写注解方法2. 编写测试方法 3....
    99+
    2023-05-15
    MyBatis实现自定义映射关系 MyBatis关联查询 MyBatis注解开发
  • MySQL联合查询(多表查询)
    一、内连接 select *from 表1 [ inner | cross ] join 表2 [ on过滤条件 ] [ where查询条件 ] ; [ inner | cross ]: join 内连接关键字(必须要有...
    99+
    2023-09-14
    mysql 数据库 database
  • MySQL详细讲解多表关联查询
    目录数据库设计范式外键内连接 外连接结语数据库设计范式 目前数据库设计有五种范式 , 一般我们数据库只需要满足前三项即可 第一范式 : 确保每列保持原子性 什么是原子性 意...
    99+
    2024-04-02
  • 如何在mysql中使用关联查询
    本篇文章为大家展示了如何在mysql中使用关联查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、确保ON和USING字句中的列上有索引。在创建索引的时候就要考虑到关联的顺序。当表A和表B用列c关...
    99+
    2023-06-15
  • mysql 多表关联查询如何改进
    mysql 多表关联查询怎么优化好呢 🚨 使用正确的连接类型优化 WHERE 子句为关联字段创建索引减少查询的字段考虑使用分布式查询尽量避免子查询优化连接顺序利用 EXPLAIN 分析查询分解复杂查询使用视图...
    99+
    2023-08-28
    mysql 数据库 sql 多表 优化
  • MySQL多表关联查询实例分析
    本篇内容介绍了“MySQL多表关联查询实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据库设计范式目前数据库设计有五种范式 , 一般...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作