MySQL之自关联查询

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

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

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

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

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

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

在该表中,结构保持不变,可以添加区、乡、街道、村、社区等信息。

[En]

In this table, the structure remains unchanged, and you can add information such as districts, townships, streets, villages and communities, etc.

准备数据:

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

练习:

-- 查询全国有多少个省?
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="济南市";

Original: https://www.cnblogs.com/pure3417/p/15225653.html
Author: pure3417
Title: MySQL之自关联查询

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/508181/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 23种设计模式之状态模式和策略模式的区别

    文章目录 概述 状态模式 策略模式 区别 总结 概述 在行为类设计模式中,状态模式和策略模式是亲兄弟,两者非常相似,我们先看看两者的通用类图,把两者放在一起比较一下 ; 状态模式 …

    数据库 2023年6月6日
    0133
  • 我设计数据库常用的几个原则

    以MySQL5.7为例,在一个项目中的数据库schema中建表 〇、建库 统一字符集和排序规则 规则 库的默认字符集选择utf8mb4,表、字段默认上级 库的排序规则选择utf8m…

    数据库 2023年6月9日
    0114
  • SpringBoot 整合 MongoDB 实战解说

    在前面的文章中,我们详细的介绍了 MongoDB 的配置和使用,如果你对 MongoDB 还不是很了解,也没关系,在 MongoDB 中有三个比较重要的名词: 数据库、集合、文档!…

    数据库 2023年6月14日
    096
  • DASCTF 冰墩墩

    SimpleFlow 一下子就能发现传了一个含有flag.txt的压缩包,需要密码,字典简单跑一下就发现是 <span class=”ne-text”>PaSsZiPW…

    数据库 2023年6月11日
    086
  • 强大博客搭建全过程(1)-hexo博客搭建保姆级教程

    1、 前言 本人本来使用国内的开源项目solo搭建了博客,但感觉1核CPU2G内存的服务器,还是稍微有点重,包括服务器内还搭建了数据库。如果自己开发然后搭建,耗费时间又比较多,于是…

    数据库 2023年6月16日
    0127
  • 06-ElasticSearch搜索结果处理

    * package com.coolman.hotel.test; import com.coolman.hotel.pojo.HotelDoc; import com.faste…

    数据库 2023年6月16日
    0108
  • 01-MySQL基础

    1、数据库的基本概念 1.1、文件操作数据的缺点 查找,增加,修改,删除数据等操作比较麻烦(特别是txt),效率低 1.2、数据库的介绍 存储和管理数据的仓库 英文单词为Dtaba…

    数据库 2023年5月24日
    077
  • java基础

    java基础知识图解 软件开发 软件开发 软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分。 人机交互方式 图形化界面(Graphical User…

    数据库 2023年6月16日
    079
  • Spring Boot中异步请求和异步调用

    一、SpringBoot中异步请求的使用 1、异步请求与同步请求 特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在…

    数据库 2023年6月14日
    0107
  • Docker下Nginx、ES、Kibana、 Redis 安装和配置

    1.Nginx 1.拉取镜像 注意:不带版本默认会下载docker仓库里面最新的版本 docker pull nginx #下载最新版 镜像名:版本名(标签) docker pul…

    数据库 2023年6月6日
    0102
  • 【MySQL】笔记(4)— 创建表;插入,修改,删除数据;主键,外键约束;事务;索引;视图;三范式;

    一.创建表: 1.1 建表语句的语法格式:create table 表名(字段名1 数据类型,字段名2 数据类型,字段名3 数据类型,…. ); 1.2 关于MySQL…

    数据库 2023年5月24日
    0105
  • Github上传代码慢

    设置git全局代理 查看代理 git config –global http.proxy git config –global https.proxy 如果你想让clone命令…

    数据库 2023年6月14日
    087
  • 高并发组件了解

    消息队列 A服务和多个服务耦合,内部维护对多个服务发送数据的接口,那么这些接口如果有的挂了,有的不需要了,那么还得修改A内部的代码,如果使用MQ,A发送消息就好,不必考虑那么多事情…

    数据库 2023年6月16日
    074
  • 学会Linux,看完这篇就行了!

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/797ab07d.html 你好,我是测试蔡坨坨。 对于测试同学来说,Linux基本属于必学必会内容,招…

    数据库 2023年6月11日
    088
  • mysql拆分字符串做条件查询

    mysql拆分字符串作为查询条件 有个群友问一个问题 这表的ancestors列存放的是所有的祖先节点,以 ,分隔 例如我查询dept_id为103的所有祖先节点,现在我只有一个d…

    数据库 2023年5月24日
    088
  • 绿色安装MySQL5.7版本—-配置my.ini文件注意事项

    简述绿色安装MySQL5.7版本以及配置my.ini文件注意事项 前言 由于前段时间电脑重装,虽然很多软件不在C盘,但是由于很多注册表以及关联文件被删除,很多软件还需要重新配置甚至…

    数据库 2023年6月16日
    0116
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球