精华内容
下载资源
问答
  • 表的自连接

    2020-04-03 14:41:14
    自连接是一种特殊的表连接,它是指相互连接的表在物理上同为一张, 但是逻辑上是多张表,自连接通常用于数据有层次结构,如区域、菜单、 商品分类等。 查询该城市属于哪一个省份 select A.id,A.name ...

    什么是自连接?

    自连接是一种特殊的表连接,它是指相互连接的表在物理上同为一张表,
    但是逻辑上是多张表,自连接通常用于表中的数据有层次结构,如区域表、菜单表、
    商品分类表等。

    |--------------------------------------------------------------------------------------------------------------------

    实操

    首先创建一个地区表,并插入数据

    drop table if exists area;
    drop table if exists area;
    
    create table area(
    	id int not null auto_increment primary key comment '区域id',
    	pid int not null comment '父id(0-省份)',
    	name varchar(30) comment '区域名称'
    );
    
    insert into area(id, pid, name) values(1, 0, '贵州省');
    insert into area(id, pid, name) values(2, 1, '贵阳');
    insert into area(id, pid, name) values(3, 1, '遵义');
    insert into area(id, pid, name) values(4, 0, '广东省');
    insert into area(id, pid, name) values(5, 4, '广州');
    insert into area(id, pid, name) values(6, 4, '深圳');
    

    查询该城市属于哪一个省份
    select A.id,A.name as CityName,B.name as ProvinceName
    from area A,area B
    where A.pid=B.id and A.pid<>0;
    在这里插入图片描述
    说明:看成是两张表,A表和B表,其中A表是地级市表,B是省名表
    即pid 和id 是一一对应的,pid是0的代表省,非零代表地级市。
    若id和pid相等,则显示出哪个省下面的哪个市。
    在这里插入图片描述

    展开全文
  • 大家好,我是天空之城,今天给大家带来,表的自连接的运用 自连接是一一种特殊的表连接,它是指相互连接的表在物理上同为一张表,但是逻辑上是多张表。自连接通常用于表中的数据有层次结构,如区域表、菜单表、商品...

    大家好,我是天空之城,今天给大家带来,表的自连接的运用

    自连接是一一种特殊的表连接,它是指相互连接的表在物理上同为一张表,但是逻辑上是多张表。自连接通常用于表中的数据有层次结构,如区域表、菜单表、商品分类表等。
    #自连接语法
    SELECT A.column, B.column
    FROM table A, table B
    WHERE A.column = B.column;
    
    先建表
    drop table if exists area;
    drop table if exists area;
    
    create table area(
    	id int not null auto_increment primary key comment '区域id',
    	pid int not null comment '父id(0-省份)',
    	name varchar(30) comment '区域名称'
    );
    
    insert into area(id, pid, name) values(1, 0, '贵州省');
    insert into area(id, pid, name) values(2, 1, '贵阳');
    insert into area(id, pid, name) values(3, 1, '遵义');
    insert into area(id, pid, name) values(4, 0, '广东省');
    insert into area(id, pid, name) values(5, 4, '广州');
    insert into area(id, pid, name) values(6, 4, '深圳');
    
    mysql> select * from area;
    +----+-----+--------+
    | id | pid | name   |
    +----+-----+--------+
    |  1 |   0 | 贵州省 |
    |  2 |   1 | 贵阳   |
    |  3 |   1 | 遵义   |
    |  4 |   0 | 广东省 |
    |  5 |   4 | 广州   |
    |  6 |   4 | 深圳   |
    +----+-----+--------+
    
    找出不是省份的城市
    mysql> select * from area where pid<>0;
    +----+-----+------+
    | id | pid | name |
    +----+-----+------+
    |  2 |   1 | 贵阳 |
    |  3 |   1 | 遵义 |
    |  5 |   4 | 广州 |
    |  6 |   4 | 深圳 |
    +----+-----+------+
    4 rows in set (0.00 sec)
    
    找到城市对应各自省份
    mysql> select A.id, A.name, B.name as  provincename
        -> from area A ,area B
        -> where A.pid = B.id and A.pid<>0;
    +----+------+--------------+
    | id | name | provincename |
    +----+------+--------------+
    |  2 | 贵阳 | 贵州省       |
    |  3 | 遵义 | 贵州省       |
    |  5 | 广州 | 广东省       |
    |  6 | 深圳 | 广东省       |
    +----+------+--------------+
    
    
    
    展开全文
  • 表的自连接有朋友问起表的自连接与join inner区别。故找之贴于此:表的别名: 一张表可以自我连接。进行自连接时我们需要一个机制来区分一个表的两个实例。 在FROM clause(子句)中我们可以给这个表取不同的别名,...

    表的自连接

    有朋友问起表的自连接与join inner区别。故找之贴于此:

    表的别名:

      一张表可以自我连接。进行自连接时我们需要一个机制来区分一个表的两个实例。

      在FROM clause(子句)中我们可以给这个表取不同的别名, 然后在语句的其它需要使用到该别名的地方用dot(点)来连接该别名和字段名。

      我们在这里同样给出两个表来对自连接进行解释。

      爱丁堡公交线路,

      车站表:

      stops(id, name)

      公交线路表:

      route(num, company, pos, stop)

      一、对公交线路表route进行自连接。

    SELECT * FROM route R1, route R2 WHERE R1.num=R2.num AND R1.company=R2.company


      我们route表用字段(num, company)来进行自连接. 结果是什么意思呢?

      你可以知道每条公交线路的任意两个可联通的车站。

      二、用stop字段来对route(公交线路表)进行自连接。

    SELECT * FROM route R1, route R2 WHERE R1.stop=R2.stop;


      查询的结果就是共用同一车站的所有公交线。这个结果对换乘是不是很有意义呢。

      从这两个例子我们可以看出,自连接的语法结构很简单,但语意结果往往不是那么容易理解。就我们这里所列出的两个表,如果运用得当,能解决很多实际问题,例如,任意两个站点之间如何换乘。

    SELECT R1.company, R1.num FROM route R1, route R2, stops S1, stops S2
    WHERE R1.num=R2.num AND R1.company=R2.company AND R1.stop=S1.id AND R2.stop=S2.id
    AND S1.name='Craiglockhart' AND S2.name='Tollcross'

    SQL:之博大精深。有机会深入一领域,还是很幸福的。

    这而还有一个关于用SQL语句统计日工作量的code snippet:

    SELECT     CONVERT(varchar(9),时间, 111) AS 时间, COUNT(1) AS 日工作量
    FROM         (SELECT DISTINCT instance_id, IDe332f3ab51394a2facbb3b352d46e1da AS 时间, ID35b32362a0974591a7bc842208a86fbd AS 姓名
                           FROM          EFTable_5
                           union
                           SELECT DISTINCT instance_id, IDe332f3ab51394a2facbb3b352d46e1da, ID35b32362a0974591a7bc842208a86fbd
                           FROM         EFTable_5) t
    GROUP BY CONVERT(varchar(9),时间, 111)

    "CONVERT(varchar(9),时间, 111)"的意思,可以参考:

    http://netnewsme.blogspot.com/2009/03/sqlconvert.html

     

    展开全文
  • 数据库中表的自连接

    千次阅读 2017-03-17 09:23:18
    select od1.order_id,od1.product_id,od1.quantity,od2.order_id from Order_detail as od1 inner join Order_detail as od2 on od1.order_id <> od2.order_id where od1.order_id=10248 and od1.product_id=72 ...

    select od1.order_id,od1.product_id,od1.quantity,od2.order_id
    from Order_detail as od1 inner join Order_detail as od2
    on od1.order_id <> od2.order_id
    where od1.order_id=10248 and od1.product_id=72 and od1.quantity=5

    展开全文
  • 使用表的自连接来实现层次化查询

    千次阅读 2010-04-20 23:52:00
    今天就碰上这么个问题,在POSTGRESQL里不知道有没有类似的语法,刚刚接触没几天,还不太熟悉,就用表的自连接来实现一个类似功能吧。 --测试数据SQL> create table dept_t(deptno number,deptna
  • MapReduce处理表的自连接

    千次阅读 2015-03-28 12:59:05
    * 表的自连结(grandchild-grandparend表) */ /* * 原始数据 * 子 父 * Tom Lucy Tom Jack Jone Locy Jone Jack Lucy Mary Lucy Ben Jack Alice Jack Jesse TerryAlice TerryJesse PhilipAlma Mark ...
  • 表的自连接一例

    2011-04-05 19:38:00
    create table t(team varchar(1))insert into t values('a')insert into t values('b')insert into t values('c')insert into t values('d')goselect * from tselect m.team , n.team from t m, t n where m.team --...
  • TestATestBSQL的表连接分为:外连接、内连接、交叉连接连接连接分为左外连接、右外连接、全外连接1.左外连接以左侧的表为基表,显示基表所有行、列,外表如果条件不匹配则外表中所有字段显示为nullselect ...
  • 工作2年多了,虽然天天在用Oracle,但基本比较简单CRUD,今天复习一下 连接方式: Oracle 之间连接分为三种: 1. 内连接(自然连接) 2. 外连接 ...3. 自连接(同一张连接) SQL标准语法:
  • 简单表自连接查询 insert into SayReply values ('其实我也不知道为啥不好','2017-04-21 11:34:43','曹操',3)insert into SayReply values ('我知道心情为啥不好','2017-04-...
  • oracle表自连接

    千次阅读 2017-10-16 20:38:34
    转自:http://www.qqread.com/oracle/2010/03/h490918.html 自连接:(这是自连接很典型用处 应当熟练掌握)。 2 使用case when。 sql@kokooa>select id,name,。 2 sum(case when subject='语文' then score end) ...
  • SQL表自连接用法

    千次阅读 2019-10-02 07:25:35
    一个与自身进行连接,称为自连接 问题提出:一个网友提出这样一个SQL题目,说自己想了很久没解决,我一看,这不是很简单吗 可是自己在查询分析器调试了半天原来问题并不是那不简单 有一个学生,里面有 ...
  • 连接使用INNER JOIN关键字,INNER JOIN在两个中匹配共同值,只有满足联结条件行才会被用来构建结果集,INNER JOIN是默认JOIN类型,可以仅使用JOIN关键字替代。 外连接有三种类型:LEFT OUTER JOIN,RIGHT...
  • sql中多连接查询——自连接

    千次阅读 2019-04-25 14:11:42
    连接方法主要有左连接(left join)、右连接(left join)、内连接(inner join)和完全连接(full join),除此之外还有一种在同一个中连接方式,自连接自连接主要用于中其他数据和某一数据进行...
  • 原 Oracle 连接方式(内连接/外连接/自连接) 详解https://blog.csdn.net/tianlesoftware/article/details/5795896版权声明: https://blog.csdn.net/tianlesoftware/article/details/5795896 Oracle 之间连接...
  • 搜了搜,基本上都是写内连接、外连接、交叉连接这三种类型,但我发现PostgreSQL还有自连接。不妨一并写来做个记录。 先说概念: 内连接,就是两个逐行匹配,匹配上内容都显示,没有匹配都...
  • 一.概述 1.内连接(自然连接) 2.外连接 (1)左外连接(左边的表不...3.自连接(同一张连接)4.SQL标准语法: select tablel.column, table2.column from tablel [inner|left|right|full]join table2 on tablel.c...
  • 连接查询 含义:又称多查询,当查询字段来自于多个时,就会用到连接查询 ...内连接:等值连接 、非等值连接 、 自连接 外连接:左外连接 、 右外连接 、 全外连接 交叉连接 一、sql92标准 1》等值
  • 有一个分类,可以有三个等级分类,一级分类下会有二级分类,二级分类会有三级分类,结构如下所示。 模拟数据如下所示,: 现在有个一次性需求需要将所有分类查询出来保存到excel,格式如下: 一级分类...
  • 一、什么是联接 1、什么是联接 联接就是把两个以笛卡尔积形式组合到一起,除此之外,好像也没有什么其他...在对表进行联接时,可将看做一个集合,元素就是一行。对表进行联接即与第一张表中...
  • 基于两个或两个以上的表或视图的查询。例如:emp和dept是两张表。(这两张表的deptno是共同字段) ①通过什么条件把两张表关联(如果...②自连接(内连接)--inner join on显示按条件左右两表都满足的项左外连接:...
  • 大家好,我是天空之城,今天给大家带来,mysql学习笔记,数据查询语言DQL,连接(内连接,外连接,自连接),从多张表中获取我们需要数据。 连接(join)是在多个之间通过一定连接条件,使得之间发生关联...
  • Oracle 之间连接分为三种: 1. 内连接(自然连接) ...3. 自连接(同一张连接) SQL标准语法: select table1.column,table2.column from table1 [inner | left | right | f...
  • MySQL关联与自连接

    千次阅读 2015-05-07 23:18:13
    MySQL关联与自连接 自连接 测试数据准备 CREATE TABLE `t2` ( `id` int(11) NOT NULL, `gid` char(1) DEFAULT NULL, `col1` int(11) DEFAULT NULL, `col2` int(11) DEFAULT NULL, PRIMARY ...
  • 1、内连接 有两个,学生student,班级:class 班级class: 学生student: 内连接: select * from class INNER JOIN student on class.id=student.classId 自己也喜欢写成如下这种形式: select * ...
  • 表的连接分析(内,,外连接)  下面我会说下数据库的表的连接,建立A,B表数据如下 A表 B表 内连接(inner join)  使用比较运算符(包括=、>、<、<>、>=、<=、!>和!<)进行表间的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,589
精华内容 6,235
关键字:

表的自连接