首页 > 数据库 >MySQL入门学习-连接查询.CROSS JOIN

MySQL入门学习-连接查询.CROSS JOIN

时间:2024-06-23 10:32:27浏览次数:24  
标签:JOIN CROSS 连接 右表中 MySQL order id

       CROSS JOIN(交叉连接) :返回左表中的所有行,左表中的每一行与右表中的所有行组合,返回的行数等于左表行数乘以右表行数。

一、连接查询包括:

1. CROSS JOIN(交叉连接) :

返回左表中的所有行,左表中的每一行与右表中的所有行组合。

2. INNER JOIN(内连接) :

返回左表和右表中满足连接条件的行。

3. LEFT JOIN(左外连接) :

返回左表中的所有行,以及右表中满足连接条件的行。

4. RIGHT JOIN(右外连接) :

返回右表中的所有行,以及左表中满足连接条件的行。

5. FULL JOIN(全外连接) :

返回左表和右表中的所有行,如果其中某个表中的行在另一个表中没有匹配的行,则使用 NULL 填充。

二、它们的特点:

- CROSS JOIN :

返回的行数等于左表行数乘以右表行数。

- INNER JOIN :

只返回满足连接条件的行。

- LEFT JOIN :

返回左表中的所有行,以及右表中满足连接条件的行。

- RIGHT JOIN :

返回右表中的所有行,以及左表中满足连接条件的行。

- FULL JOIN :

返回左表和右表中的所有行,如果其中某个表中的行在另一个表中没有匹配的行,则使用 NULL 填充。

三、使用方法:

- CROSS JOIN :

使用 CROSS JOIN 关键字进行连接。

- INNER JOIN :

使用 INNER JOIN 关键字,后面跟着连接条件。

- LEFT JOIN :

使用 LEFT JOIN 关键字,后面跟着连接条件。

- RIGHT JOIN :

使用 RIGHT JOIN 关键字,后面跟着连接条件。

- FULL JOIN :

使用 FULL JOIN 关键字,后面跟着连接条件。

 

四、CROSS JOIN 与其他连接查询的比较:

1. CROSS JOIN 返回的行数最多,因为它返回左表中的所有行与右表中的所有行的组合。

2. INNER JOIN 返回的行数最少,只返回满足连接条件的行。

3. LEFT JOIN 返回左表中的所有行,以及右表中满足连接条件的行。

4. RIGHT JOIN 返回右表中的所有行,以及左表中满足连接条件的行。

5. FULL JOIN 返回左表和右表中的所有行,如果其中某个表中的行在另一个表中没有匹配的行,则使用 NULL 填充。

五、高级应用:

1. 在连接查询中使用子查询。

2. 使用多个连接条件。

3. 使用 NATURAL JOIN 关键字。

4. 使用 USING 关键字。

以下是一个示例,演示了如何使用 CROSS JOIN 和其他连接查询:

```sql

-- 创建表

CREATE TABLE products (

    id INT PRIMARY KEY,

    name VARCHAR(50),

    price DECIMAL(10, 2)

);

 

CREATE TABLE orders (

    id INT PRIMARY KEY,

    order_date DATE,

    customer_id INT

);

 

CREATE TABLE order_items (

    id INT PRIMARY KEY,

    order_id INT,

    product_id INT,

    quantity INT

);

 

-- CROSS JOIN 示例

SELECT *

FROM products

CROSS JOIN orders;

 

-- INNER JOIN 示例

SELECT *

FROM products

INNER JOIN order_items ON products.id = order_items.product_id;

 

-- LEFT JOIN 示例

SELECT *

FROM products

LEFT JOIN order_items ON products.id = order_items.product_id;

 

-- RIGHT JOIN 示例

SELECT *

FROM orders

RIGHT JOIN order_items ON orders.id = order_items.order_id;

 

-- FULL JOIN 示例

SELECT *

FROM orders

FULL JOIN order_items ON orders.id = order_items.order_id;

```

(文章为作者在学习MySQL过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

 

 

标签:JOIN,CROSS,连接,右表中,MySQL,order,id
From: https://blog.csdn.net/weixin_69763181/article/details/139854322

相关文章

  • MySQL入门学习-连接查询.RIGHT JOIN
        RightsJoin是MySQL中的一种连接查询类型,用于根据右表中的匹配条件,将左表中的数据与右表中的数据进行连接。    一、与其他连接查询相比,RightsJoin具有以下特点:1.连接方向:RightsJoin以右表为主表,左表为从表。连接结果将包含右表中的所有行,而左表......
  • Java学习 - MySQL存储过程、函数和触发器练习实例
    存储过程存储过程是什么存储过程是一组已经编译好的SQL语句存储过程优点有什么安全性能高提高代码复用性创建存储过程的语法DELIMITER$#不能加分号CREATEPROCEDURE存储过程名(IN|OUT|INOUT参数名参数类型)BEGIN存储过程语句块END;$DELIMIT......
  • MySQL 面试突击指南:核心知识点解析2
    事务并发可能引发的问题MySQL是一个客户端/服务器架构的软件,对于同一个服务器来说,可以有多个客户端与之连接,每个客户端与服务器连接后,可以称为一个会话(Session)。每个客户端都可以在自己的会话中向服务器发出请求语句,一个请求语句可能是某个事务的一部分,也就是说,服务器可能......
  • 学生读书笔记共享系统-毕业设计-Springboot+mysql+Vue
    介绍学生读书笔记共享系统是一款专为学生设计的平台,旨在通过信息化手段实现读书笔记的共享和交流。系统分为管理端和用户端两个角色,分别为管理员和学生用户提供不同的功能模块,满足各自的需求。该系统不仅促进了学生之间的学习交流,还提升了学习效率和笔记管理的便捷性。技术栈......
  • Springboot计算机毕业设计自动答疑系统小程序【附源码】开题+论文+mysql+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着教育信息化的快速发展,学生对于知识获取和问题解决的需求日益增加。然而,传统的答疑方式,如面对面咨询或邮件回复,存在效率低下、资源分配不均等问题......
  • CrossOver 24 for Mac(windows 虚拟机)
    CrossOverforMac是一款功能强大的虚拟机软件,允许在Mac系统上运行Windows应用程序而无需重新启动计算机。通过CrossOver,用户可以轻松地运行Windows软件和游戏,而无需购买Windows许可证或使用虚拟机。CrossOver通过直接在Mac系统上提供所需的Windows资源,实现了无缝的跨平台兼容......
  • 简单整理一下近几年辅导的毕业设计项目Java+SSM+MySQL
    序号项目标题语言框架数据库代码论文PPT1jspm基于SSM的“昭愿”甜品店销售管理系统JavaSSMMySQL√√√2jspm基于SSM的医药管理系统JavaSSMMySQL√√√3jspm1x3v1基于JSP的校园宿舍电费缴纳系统JavaSSMMySQL√√√4jspm“众优”大学生家教平台的设计与实现JavaSSMMySQL√√√5......
  • mysql数据表插入数据后,获取自增字段值的方法
        mysql数据表如果有字段的值是自增的,即创建表时该字段使用了auto_increment,当插入数据时,获取该字段自增值的方法是selectLAST_INSERT_ID()或者select@@IDENTITY,这两种方法都是面向数据库连接(connection)的,即只要在同一个数据库连接(connection)中,往表中插入数据后,紧......
  • 安装mysql(版本:8.0.28)
    一、更新源和安装sudoaptupdate#更新源sudoaptinstallmysql-server#安装二、修改密码和权限sudomysql#登录mysql,使用root用户连入mysql,默认不需要密码ALTERUSER'用户名'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'明文密码';#修改密码Updateus......
  • 麒麟系统通过CrossOver软件安装Windows软件(.exe)的详细过程
    一、前期准备1.成功安装麒麟系统(本次实验的安装的系统是:Kylin-Desktop-V10-SP1))2.麒麟系统已经成功安装CrossOver软件3.Windows软件包(.exe文件)已经完成拷贝至麒麟系统4.知晓登录账户密码二、操作步骤选中需要安装的.exe软件,然后点击鼠标右键,然后选中打开方式,然......