zoukankan      html  css  js  c++  java
  • sql join 语句的小总结

    CREATE TABLE Persons (
      id INT PRIMARY KEY,
      LastName CHAR(10) NOT NULL,
      FirstName VARCHAR (10),
      address VARCHAR (10),
      city VARCHAR (10) 
      
      )ENGINE INNODB;
      
     INSERT INTO Persons(id,LastName,FirstName, address, city)
       VALUES(1,'Adams','Joh','Oxford Street','London');
     INSERT INTO Persons(id,LastName,FirstName, address, city)
       VALUES(2,'Bush','George','Fifth Avenue','New York');
     INSERT INTO Persons(id,LastName,FirstName, address, city)
       VALUES(3,'Adams','Thomas','Changan Street','Beijing');
    CREATE TABLE Orders(
        Id_O INT PRIMARY KEY,
        Order_no CHAR(20) NOT NULL,
        Id_P INT NOT NULL
    
    );
    
    INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(1,'77895',3);
    INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(2,'44678',3);
    INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(3,'22456',1);
    INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(4,'24562',1);
    INSERT INTO Orders(Id_O,Order_no,Id_P) VALUES(5,'34764',65);

     

    1, inner join,  连接谓词共有的部分。
    SELECT * FROM Persons p INNER JOIN Orders o ON p.`id` = o.`Id_P`;
    2, left join, 左表的特有部分加上两表的共有部分 SELECT
    * FROM Persons p LEFT JOIN Orders o ON p.`id` = o.`Id_P`;
    3, 左表特有的部分 SELECT
    * FROM Persons p LEFT JOIN Orders o ON p.`id` = o.`Id_P` WHERE o.`Id_O` IS NULL; 4, right join , 右表特有部分加上两表的共有部分。 SELECT * FROM Persons p RIGHT JOIN Orders o ON p.`id` = o.`Id_p`;
    5,右表特有部分。 SELECT
    * FROM Persons p RIGHT JOIN Orders o ON p.`id` = o.`Id_p` WHERE p.`id` IS NULL; 6, full join 两表的所有结果集 SELECT * FROM Persons p LEFT JOIN Orders o ON p.`id` = o.`Id_p` UNION SELECT * FROM Persons p RIGHT JOIN Orders o ON p.`id` = o.`Id_P`;
    7,左表特定部分的结果集 加上 右表特定的结果集 。 SELECT
    * FROM Persons p LEFT JOIN Orders o ON p.`id` = o.`Id_p` WHERE o.`Id_O` IS NULL UNION SELECT * FROM Persons p RIGHT JOIN Orders o ON p.`id` = o.`Id_P` WHERE p.`id` IS NULL
  • 相关阅读:
    【linux磁盘与文件系统管理】8-RAID工作原理和实现
    【linux磁盘与文件系统管理】5,6,7-文件系统使用-管理
    【linux磁盘与文件系统管理】3,4-MBR和GPT分区-分区管理
    【linux磁盘与文件系统管理】2-分区表MBR
    【linux磁盘与文件系统管理】1-磁盘结构和概念
    01学习Vue.js过程总结
    oracle表管理(建表,改表,删表,表数据增删改查)
    oracle数据类型
    Orcal登录密码过期
    基于Container部署的k8s集群
  • 原文地址:https://www.cnblogs.com/lijins/p/10138285.html
Copyright © 2011-2022 走看看