首页 > 数据库 >无涯教程-SQL - INTERSECT Clause函数

无涯教程-SQL - INTERSECT Clause函数

时间:2024-01-17 11:32:46浏览次数:23  
标签:00 Clause 无涯 ORDERS 2019 INTERSECT ID SELECT

SQL INTERSECT 子句用于组合两个SELECT语句,但仅返回第一个SELECT语句中与第二个SELECT语句中的行相同的行。这意味着INTERSECT仅返回两个SELECT语句返回的公共行,MySQL不支持INTERSECT运算符。

INTERSECT - 语法

INTERSECT 的基本语法如下。

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

INTERSECT

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

INTERSECT - 示例

请考虑以下两个表。

表1 -客户表(CUSTOMERS)如下

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Learnfk    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

表2 -订单表(ORDERS)如下。

+-----+---------------------+-------------+--------+
|OID  | DATE                | CUSTOMER_ID | AMOUNT |
+-----+---------------------+-------------+--------+
| 102 | 2019-10-08 00:00:00 |           3 |   3000 |
| 100 | 2019-10-08 00:00:00 |           3 |   1500 |
| 101 | 2019-11-20 00:00:00 |           2 |   1560 |
| 103 | 2018-05-20 00:00:00 |           4 |   2060 |
+-----+---------------------+-------------+--------+

现在,让无涯教程按如下所示将这两个表连接到SELECT语句中。

SQL> SELECT  ID, NAME, AMOUNT, DATE
   FROM CUSTOMERS
   LEFT JOIN ORDERS
   ON CUSTOMERS.ID=ORDERS.CUSTOMER_ID
INTERSECT
   SELECT  ID, NAME, AMOUNT, DATE
   FROM CUSTOMERS
   RIGHT JOIN ORDERS
   ON CUSTOMERS.ID=ORDERS.CUSTOMER_ID;

这将产生以下输出。

+------+---------+--------+---------------------+
| ID   | NAME    | AMOUNT | DATE                |
+------+---------+--------+---------------------+
|    3 | kaushik |   3000 | 2019-10-08 00:00:00 |
|    3 | kaushik |   1500 | 2019-10-08 00:00:00 |
|    2 | Ramesh  |   1560 | 2019-11-20 00:00:00 |
|    4 | kaushik |   2060 | 2018-05-20 00:00:00 |
+------+---------+--------+---------------------+

参考链接

https://www.learnfk.com/sql/sql-intersect-clause.html

标签:00,Clause,无涯,ORDERS,2019,INTERSECT,ID,SELECT
From: https://blog.51cto.com/u_14033984/9289031

相关文章

  • 无涯教程-SQL - EXCEPT Clause函数
    SQLEXCEPT子句用于组合两个SELECT语句,并从第一个SELECT语句返回第二个SELECT语句未返回的行,这意味着EXCEPT仅返回第二行SELECT语句中不可用的行,MySQL不支持EXCEPT运算符。EXCEPT-语法EXCEPT的基本语法如下。SELECTcolumn1[,column2]FROMtable1[,table2][WHE......
  • 无涯教程-SQL - CARTESIAN JOIN函数
    CARTESIANJOIN或CROSSJOIN从两个或多个联接表中返回记录集的笛卡尔积。CARTESIANJOIN-语法CARTESIANJOIN或CROSSJOIN的基本语法如下-SELECTtable1.column1,table2.column2...FROMtable1,table2[,table3]CARTESIANJOIN-示例请考虑以下两个表。表1-C......
  • 无涯教程-SQL - FULL JOIN函数
    SQLFULLJOIN组合了左右外部联接的输出,联接的表将包含两个表中的所有记录,并为任一侧缺少的匹配项填充NULL。FULLJOIN-语法FULLJOIN的基本语法如下-SELECTtable1.column1,table2.column2...FROMtable1FULLJOINtable2ONtable1.common_field=table2.common_fie......
  • 无涯教程-SQL - RIGHT JOIN函数
    SQLRIGHTJOIN返回右表中的所有行,即使左表中没有匹配项也是如此,这意味着右连接返回右表中的所有值,再加上左表中的匹配值,如果没有匹配则返回NULL。RIGHTJOIN-语法RIGHTJOIN的基本语法如下。SELECTtable1.column1,table2.column2...FROMtable1RIGHTJOINtable2O......
  • 无涯教程-SQL - Create Table Using another Table.函数
    可以使用CREATETABLE语句和SELECT语句的组合来创建现有表的副本。新表具有相同的列定义。可以选择所有列或特定列。当您使用现有表创建新表时,将使用旧表中的现有值填充新表。语法从另一个表创建表的基本语法如下:CREATETABLENEW_TABLE_NAMEASSELECT[column1,colu......
  • 无涯教程-SQL - Injection(注入)
    如果您通过网页输入用户输入并将其插入到SQL数据库中,则可能会遇到因SQL注入而引起的安全问题。本章将教您如何防止这种情况的发生,并帮助您保护服务器端脚本(如PERL脚本)中的脚本和SQL语句。在下面的示例中,名称限于字母数字字符加下划线,并且长度介于8到20个字符之间(根据需要修......
  • 无涯教程-SQL - Sequences(序列)
    序列是按需生成的一组整数1、2、3,...。序列在数据库中经常使用,因为许多应用程序要求表中的每一行都包含唯一值。本章介绍如何在MySQL中使用序列。AUTO_INCREMENT列MySQL中使用序列的最简单方法是将一列定义为AUTO_INCREMENT,其余部分留给MySQL处理。试试下面的例子,这将创建一......
  • 无涯教程-SQL - SubQueries(子查询)
    子查询或内部查询或嵌套查询是另一个SQL查询中的查询,并嵌入在WHERE子句中。SubQueries-语法子查询最常与SELECT语句一起使用。基本语法如下-SELECTcolumn_name[,column_name]FROMtable1[,table2]WHEREcolumn_nameOPERATOR(SELECTcolumn_name[,column......
  • 无涯教程-SQL - Transactions(事务)
    事务是将一个或多个更改打包在一起保存到数据库,事务对于确保数据完整性和处理数据库错误很重要。事务性质事务具有以下四个标准属性,通常以首字母缩写ACID表示。原子性-确保工作单元内的所有操作均成功完成,否则,事务将在失败时中止,并且所有先前的操作都将还原到以前的状态......
  • 无涯教程-SQL - Views(视图)
    视图只不过是存储在数据库中且具有关联名称的SQL语句,视图实际上是以预定义的SQL查询的形式组成的临时表。创建视图数据库视图是使用CREATEVIEW语句创建的,可以从单个表,多个表或另一个视图创建视图。基本的CREATEVIEW语法如下-CREATEVIEWview_nameASSELECTcolumn1,......