• PostgreSQL-8-数据合并


    -- 1、JOIN与UNION的区别详解
    
    CREATE TABLE t1(id int,value1 text);
    
    INSERT INTO t1 VALUES(1,'a'),(2,'b'),(3,'c'); -- 创建表格t1
    
    CREATE TABLE t2(id int,value2 text);
    
    INSERT INTO t2 VALUES(1,'aa'),(2,'bb'),(3,'cc'); -- 创建表格t2
    
    CREATE TABLE t3(id int,value3 text);
    
    INSERT INTO t3 VALUES(1,'a'),(4,'A'),(5,'B'),(6,'C'); -- 创建表格t3,注意这里有一条和t1一样的数据
    
     
    
    SELECT * FROM t1 INNER JOIN t2 ON t1.id = t2.id; -- JOIN:以id为key连接t1,t2两个表格
    
    SELECT * FROM t1 UNION SELECT * FROM t3; -- UNION:将两个表格合并(行与行)
    
    -- 注意,UNION要求两个表格具有相同的列结构,列数也要相同,列名可以不同
    
    -- UNION之后不会返回重复数据
    
     
    
    -- 2、UNION语法
    
    SELECT column1 [, column2 ]     FROM table1 [, table2 ] [WHERE condition]
    
           UNION
    
                  SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
    
           -- 组合两个或多个SELECT语句的结果,而不返回任何重复的行
    
     
    
    -- 3、UNION ALL语法
    
    SELECT column1 [, column2 ]     FROM table1 [, table2 ] [WHERE condition]
    
           UNION ALL
    
                  SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
    
           -- 组合两个或多个SELECT语句的结果,且返回重复的行
    
     
    
    SELECT * FROM t1 UNION ALL SELECT * FROM t3;
  • 相关阅读:
    深入理解Java虚拟机二之Java内存区域与内存溢出异常
    深入理解java虚拟机一之走进Java
    数据结构之链表
    Spring AOP 详解
    Spring IOC 注入方式详解 附代码
    图的广度优先遍历
    图的深度优先遍历
    MySql 中的<=>操作符
    mysql数据库explain命令用法详解
    Java虚拟机内存分配详解
  • 原文地址:https://www.cnblogs.com/swefii/p/10660800.html
Copyright © 2020-2023  润新知